草庐IT

boost-pool

全部标签

c++ - 如何将颜色编码添加到 boost::log 控制台输出?

我试图在linux下为boost::log添加彩色日志输出。我读了thefollowing我试过这个:#defineMY_LOG_ERROR()BOOST_LOG_TRIVIAL(error)但它给了我以下结果:[2016-07-1117:23:16.328435][0x00007f15f03d6780][error][1;31Thisisanerrorlog.如何正确地将彩色日志输出添加到boost::log? 最佳答案 使用Boost.Log自定义输出的正确方法是使用formatters.要设置格式化程序,您必须按照所述设置一个

c++ - 如何复制或重用 boost::asio::streambuf?

我在boostasio上实现带有一些业务逻辑的http代理服务器。在第(1)点中,boost::asio::streambufresponse_包含httpheader和部分http正文。用http_response::parse解析后,缓冲区boost::asio::streambufresponse_为空。在(2)处,我检查所有业务逻辑并读取正文,如果header中有Content-Lengthheader。如果response_数据符合特定条件,我想将原始response_缓冲区发送到另一个套接字(3)。问题是解析后缓冲区为空。有没有办法复制boost::asio::stream

c++ - boost lambda for_each/转换拼图

谁知道为什么vectortest(10);inta=0;for_each(test.begin(),test.end(),(_1+=var(a),++var(a)));for_each(test.begin(),test.end(),(cout给出:“0123456789”但是transform(test.begin(),test.end(),test.begin(),(_1+=var(a),++var(a)));...(asbefore)给出:“12345678910”? 最佳答案 逗号运算符从左到右求值,所以_1+=var(a)

c++ - boost::variant 是火箭科学吗? (因此我应该避免它用于简单的问题吗?)

好的,所以我在代码的这个小角落里希望我的函数返回(int,double,CString)稍微清理一下代码。所以我认为:编写一个具有三个成员等的类似union体的包装器struct没问题。但是等等!我没读过boost::变体?这不正是我需要的吗?这将使我免于自己弄乱包装器结构!(请注意,我的项目中已经有可用的boost库。)所以我启动浏览器,导航到Chapter28.Boost.Variant你瞧:Thevariantclasstemplateisasafe,generic,stack-baseddiscriminatedunioncontainer,offeringasimplesol

c++ - 在 boost Homebrew 软件安装中找不到 bjam

我在运行Lion的Mac上使用homebrew(brewinstallboost)安装了Boost,目的是使用现有的C++程序扩展python。现在我无法关注startingguide因为1-我的系统中没有安装“bjam”,2-我在任何地方都看不到示例文件夹。我的问题是:我应该如何在没有“bjam”的情况下将c++-python链接到这个Homebrew软件安装?有没有我应该使用的替代方法或我在这里缺少的东西? 最佳答案 安装boost以连接c++和python程序的正确公式是:brewinstallboost-build正如sen

c++ - boost deadline_timer 最小示例 : should I substitute "sleep"?

我有一个线程,我需要每10毫秒执行一次操作。所以我有非常简单的代码,就像这样:while(work){//dosomethingSleep(10000);//boostsleepcanbealsoused}我听说一般不推荐使用Sleep,如果我用deadline_timer代替它,整体应用程序性能会更好,特别是我会避免昂贵的“上下文切换”.我应该将sleep更改为deadline_timer如果可以,有人可以举个例子吗? 最佳答案 这一切都取决于对10ms的要求。迭代之间延迟10毫秒如果应用程序需要在迭代之间有10毫秒的延迟,那么s

c++ - 如何使用 Boost 库更改文件权限?

如何使用Boost库将文件的权限更改为只读?有一些问题我已经看过了,比如this和this,但我还是不知道怎么做,我试过了boost::filesystem::wpathpath=L"abc.txt";if(boost::filesystem::exists(path)&&boost::filesystem::is_regular_file(path)){boost::filesystem::file_statuss=boost::filesystem::status(path);/*hereIneedtosetfilepermissitonstoREADONLYfor`path`fi

c++ - 错误 : The following Boost libraries could not be found

我正在使用cmake和boost制作visualstudio解决方案。我的命令是:F:\C++\yapimpl\build>cmake..-G"VisualStudio11"-DBOOST_ROOT=E:\lib\lib\boost_1_54_0-DBOOST_LIBRARYDIR=E:\lib\lib\boost_1_54_0\bin\vc11\lib尽管我设置了BOOST_LIBRARYDIR和BOOST_ROOT,它仍然显示boost_unit_test_framework找不到。目录E:\lib\lib\boost_1_54_0\bin\vc11\lib确实包含这些文件:08/

c++ - boost:初始化共享指针重置与 make_shared

除了生成代码的大小之外,使用reset()初始化函数make_shared()上的共享指针有什么区别?案例1使用reset()boost::shared_ptrpA;pA.reset(newA());案例2使用make_shared()boost::shared_ptrpA;pA=boost::make_shared();一般来说,使用reset而不是make_shared来减小可执行文件的大小是否是一个好习惯? 最佳答案 reset(newT(...))分配一个堆block,构造对象,为引用计数器分配一个新的堆block并初始化引

c++ - Boost::any 和多态性

我正在使用boost::any来存储指针,想知道是否有一种提取多态数据类型的方法。这是一个简单的示例,说明理想情况下我想做什么,但目前行不通。structA{};structB:A{};intmain(){boost::anya;a=newB();boost::any_cast(a);}这失败了,因为a正在存储一个B*,而我正在尝试提取一个A*。有办法实现吗?谢谢。 最佳答案 Boost.DynamicAny是Boost.Any的变体,它提供更灵活的基础类型动态转换。从Boost.Any中检索值需要您知道存储在Any中的确切类型,而