草庐IT

visualize-gradient-boosting-decis

全部标签

c++ - 添加多个相同类型的 boost::error_infos 到一个 boost::exception

#include#includestructmyexception:virtualboost::exception,virtualstd::exception{};typedefboost::error_infoinfo;voidmain(){try{BOOST_THROW_EXCEPTION(myexception()这将输出[structtag_info*]=2我明白为什么会这样,但宁愿让它输出[structtag_info*]=1[structtag_info*]=2我当然可以typedefinfo作为boost::error_info>然后将所有信息累积在std::vector

c++ - boost::asio 接受器避免内存泄漏

使用boost::asio我使用async_accept接受连接。这很好用,但有一个问题,我需要一个如何处理它的建议。使用典型的async_accept:Listener::Listener(intport):acceptor(io,ip::tcp::endpoint(ip::tcp::v4(),port)),socket(io){start_accept();}voidListener::start_accept(){Request*r=newRequest(io);acceptor.async_accept(r->socket(),boost::bind(&Listener::ha

c++ - 从命令行构建 Visual Studio Express 11 项目

到目前为止,我使用以下技术从命令行构建我的C++项目(目的:使用jenkins每晚构建,具有与“正常”项目相同的配置):devenvMySolution.sln/build"Release"/project"MyProject"或者,从一个快速版本:VCExpressMySolution.sln/build"Release"/project"MyProject"现在,我最近获得了用于桌面的VC11express,显然,它不是同一个可执行文件(我认为VCExpress.exe的等价物是WDExpress.exe,我错了吗?),它不是同一个命令行(它是某种东西像WDExpressMyPro

c++ - Visual Studio 还能优化预编译代码吗?

好的,解释我的问题的最好方法是通过2个示例:示例1:您已经为自己创建了一个名为MyLibrary的框架或引擎,并且您构建的是一个具有最大优化选项的.lib。现在您包括标题并链接.lib在一个名为MyImplementation的新项目中。该项目使用了MyLibrary的大部分功能,完成后,您将构建该项目(再次进行最大优化)。示例2:您再次拥有相同的库,但不是构建它,而是让它开源。然后您创建相同的MyProject,包含标题并以最大优化构建MyProject已启用。那么,示例2会运行得更快吗,因为编译器可以访问整个源代码(框架/引擎+您在其中使用它的项目)?

c++ - boost::asio::streambuf 缩小到适合?

boost::asio::streambuf的大小会一直增加,直到consume()被调用。即使在调用consume()之后,底层缓冲区使用的内存也永远不会被释放。例如:下面的代码首先创建了一个没有指定max_size的streambuf。然后它将14Mb数据转储到streambuf中。然后它消耗所有这些14MB数据。在2000点,streambuf.size()为0,但“top”显示进程仍占用14MB内存。我不想指定max_size。streambuf为空后,有什么方法可以收缩它吗?#include#include#includeintmain(){{boost::asio::str

c++ - 在 visual studio 2010 中创建 .lib 文件

您好,我正在尝试创建一个生成.lib文件的静态库。我有file1.h和file1.cpp。file1.cpp包含需要在file2.cpp和file2.h中定义的函数的代码。在我的项目中(在项目属性->配置中,我已将我的项目定义为静态库)。编译后在发布文件夹中看到file2.obj和file1.obj文件。我不查看任何.lib文件。我应该在visualstudio2010中更改哪里以及如何更改,以便获得一个.lib文件,其中包含文件file1.cpp中定义的函数。谢谢 最佳答案 输出文件的名称指定在:ConfigurationProp

c++ - boost::thread 和 std::thread 之间的区别

我有一个使用boost::thread的地方(例如使用boost::asio)std::vector>threads;for(std::size_ti=0;ithread(newboost::thread(boost::bind(&boost::asio::io_service::run,io_services_[i])));threads.push_back(thread);}如果我尝试将它与std:thread一起使用,我会得到编译错误:std::vectorthreads;for(std::size_ti=0;iioServices.size();++i){std::thread

c++ - BOOST MPL 添加两个 list_c 对象导致意外行为

我有以下代码:#include#include#include#include#include#include#include#include#includeusingnamespaceboost::mpl;typedeflist_cevens;typedeflist_cprimes;typedeflist_csums;typedeftransform>::typeresult;BOOST_MPL_ASSERT((equal>));intmain(){std::cout它编译,所以BOOST_MPL_ASSERT成立。但是,运行它时,main函数中的断言失败。这是什么意思?包含相同元素

c++ - boost::spirit ,如何获取占位符的 "value"

我正在尝试构建一个接受格式为“/integer/(/integer/)”的字符串并生成一个std::tuple的解析器现在我有:qi::rule()>parser=(qi::int_>>'('>>qi::int_>>')')[_val=std::make_tuple(qi::_1,qi::_2)]无法编译,因为占位符qi::_i的类型不正确。如何从占位符中“提取”基础值? 最佳答案 嗯,你可以只使用自动属性传播(又名“自动规则”):#include#include#includenamespaceqi=boost::spirit::

c++ - 类型转换 boost::fusion::vector

boost::fusion::vector的编号形式看起来像templateclassvector1;templateclassvector2;等等可变参数形式看起来像templateclassvector;那么有没有办法在编译时将boost::fusion::vector从编号形式转换为可变参数形式? 最佳答案 您真的需要编译时转换吗?两者之间存在运行时转换,所以我看不出有必要:vector2a(13,'b');vectorb=a;不过我试着玩玩。我对我的回答不满意,但也许您可以继续努力以找到更好的答案。我希望能够使用一些元函数,