草庐IT

ZN5boost

全部标签

c++ - 将 GoogleMock 与 Boost::Shared Pointers 一起使用时泄漏的模拟对象

对于这种特殊情况,我无法消除泄漏。我在执行测试时收到了LeakedMockObjects的消息。具体消息:ClassElementFixture.h:102:错误:这个模拟对象(在测试ClassElementFixture.initialize中使用)应该被删除,但从来没有被删除。它的地址是@0x940a650。我标记了错误所指的行。这是我的代码的简化版本:...classClassElementFixture:public::testing::Test{public:boost::shared_ptrclassElement_;boost::shared_ptrdeviceEleme

c++ - 如何使用 Boost Filesystem 忽略隐藏文件(和隐藏目录中的文件)?

我正在使用以下递归地遍历目录中的所有文件:try{for(bf::recursive_directory_iteratorend,dir("./");dir!=end;++dir){constbf::path&p=dir->path();if(bf::is_regular_file(p)){std::cout但这包括隐藏文件和隐藏目录中的文件。如何过滤掉这些文件?如果需要,我可以将自己限制在隐藏文件和目录以“.”开头的平台上。性格。 最佳答案 不幸的是,似乎没有跨平台的方式来处理“隐藏”。以下适用于类Unix平台:首先定义:bool

c++ - 如何迭代 boost::property_tree 中的 XML 结构

我的XML结构如下:正在读入boost::property_tree,有1..许多s,然后在该元素内的任意深度可能有1..Many小号有没有办法遍历直接(在一个循环中)按照它们在文档中出现的顺序?我看过equal_rangevoiditerateOverPoints(){constchar*test="""""""""""""""""""""""""""";boost::property_tree::ptreemessage;std::istringstreamtoParse(test);boost::property_tree::read_xml(toParse,result_tre

c++ - 使用 boost::signals2 编译时间非常慢

我们有一个大型代码库,多年来已成功使用boost::signals。我们最近转向boostv1.54,并决定由于boost::signals已被弃用,我们将切换到boost::signals2。我们看到的问题是编译时间太长了。例如,一个小的.cpp文件现在需要20多秒,而过去需要4秒。同样,过去需要大约10分钟才能生成的我们的一个库(大型)现在最多需要一个小时。我到处搜索有关如何通过预编译头文件、宏等改进这一点的文档,但还没有找到任何可以大大改善这种情况的方法。在procmon中查看cl.exe会发现大量IO进入boost::signals2和mpl库。此时我们不需要signals2提

c++ - 如何使用 Visual Studio 2013 构建 Boost 1.55?

我正在尝试使用VisualStudio2013构建Boost1.55。1)我尝试使用boost-binaries(boost-binaries),但是当我尝试编译时,VisualStudio记录了错误:errorLNK1104:cannotopenfile'libboost_serialization-vc120-mt-gd-1_55.lib'.Iusedboost_1_55_0-msvc-12.0-32.exeor1.55.0-build2(boost-binaries).我没有在boost_1_55_0\lib32-msvc-12.0目录中找到那个.lib文件。2)我也尝试使用这个

c++ - 如何使用 boost.log 以 dec 格式打印 ProcessID 和 ThreadID

我在我的程序中使用boost.log,默认格式化程序以十六进制格式输出进程ID和线程ID,任何人都知道如何以十进制格式打印它们,谢谢。这是我的代码的github:https://github.com/owenliang/boost_asio,谢谢。boost::log::formatterscope_formatter=boost::log::expressions::stream("TimeStamp","%Y-%m-%d%H:%M:%S")("ProcessID")("ThreadID")("Severity") 最佳答案 Bo

c++ - 围绕 Boost Graph 库中的捆绑属性进行设计

我正在将一些图形代码从Python(networkx)移植到C++(BGL)中。在我的Python代码中,图的顶点和边是实现既定接口(interface)的客户端定义对象;我继续对它们调用一堆方法。一切都很好。天真地,BGL似乎旨在支持具有“捆绑属性”的类似设计模式。这些基本上允许通过传递某些模板参数来为顶点和边定义自定义类型:adjacency_list此处的自定义顶点和边类型由VertexProperties和EdgeProperties给出。在处理这个端口时,我注意到一些事情让我觉得也许BGL的捆绑属性接口(interface)真的只是为了支持(或多或少)不可变类型:边和顶点“描

c++ - std::bind() 错误:无法确定重载函数 "boost::asio::io_service::run"的实例

尝试在VisualC++2015中编译时autoworker=std::bind(&boost::asio::io_service::run,&(this->service));我遇到错误:errorC2783:'std::_Binderstd::bind(_Fx&&,_Types&&...)':couldnotdeducetemplateargumentfor'_Ret'note:seedeclarationof'std::bind'errorC2783:'std::_Binderstd::bind(_Fx&&,_Types&&...)':couldnotdeducetemplate

c++ - #define 在 Boost Jamfiles 中

这是我的项目结构:MainFolder-Jamroot.jam-AnotherFolder-libFolder-Jamfile.jam-cppfiles我在其中一个cpp文件中有一个#ifdef。示例:#ifdefSOMEVALUECode#endif我需要在Jamfile中使用#define编译cpp文件。因为,我有两种类型的可执行文件(一种带#define,一种不带),我需要在Jamfile本身而不是cpp代码中执行此操作。我已经尝试了以下方法,但它不起作用(无法在#ifdef#endifblock中找到定义):liblibname:[glob*.cpp]:static:SOMEV

c++ - boost::spirit 中的运算符优先级?

我使用spiritmini_c样本做了一些测试。不幸的是,它没有像预期的那样保持运算符优先级:intmain(){return3>10||3>1;}计算为0。return(3>10)||(3>1);返回1我试图移动“||”的定义和“&&”到构造函数的最顶端templateexpression::expression(但这并没有改变任何东西。这怎么能解决。我正在使用boost1.3.38。 最佳答案 已确认,这是mini_c示例中与运算符优先级相关的错误。我提交了对SVN的修复,它将在BoostV1.45中可用。这是我在头文件mini