草庐IT

boost_thread

全部标签

c++ - boost 压缩对和空对象的地址

据我所知,boost::compressed_pair应该确保第一个和第二个memebr的地址不同,同时它会压缩这对。上面写着here.似乎并非如此,它的行为在不同的编译器上是不同的。我正在使用boostv1.47。我错过了什么?structE1{};structE2{};boost::compressed_pairdiff_pair;boost::compressed_pairsame_pair;//clang++andg++4.7printthesameaddressbutVC2010printsdifferentaddresses.printf("differentpairs=%

C++ Boost.Python : 2 problems

所以,我搜索了将我的C++代码与python集成的好工具,首先我查看了boost.python。我从boost文档中获取了helloexamle,并尝试构建并运行它。源代码是(src/hello.cpp):#include#includecharconst*greet(){return"hello,world";}BOOST_PYTHON_MODULE(hello_ext){usingnamespaceboost::python;def("greet",greet);}问题1-Windows和mingw我尝试构建我的结果:g++-obuild\hello.o-c-IE:\Program

c++ - 如何使用 Boost 实现测试套件和用例的组织?

前言我是单元测试的新手,也是C++的新手。最近我有一些使用RSpec在Ruby中进行测试驱动开发的经验。现在,我正在尝试使用Boost的单元测试框架在C++中进行类似的工作。场景我正在项目根文件夹下的目录/src中组织应用程序的头文件和源文件。正如我在其他C++程序中多次看到的那样,将测试放在项目根目录的目录/tests中似乎是合理的。现在我想在测试中复制源文件的目录结构。因此,假设我有以下源/头文件结构:/src/controllercontroller_class.hcontroller_class.cpp/modelmodel_a.hmodel_a.cppmodel_b.hmod

c++ - 使用 Boost.Spirit 编译一个简单的解析器

我正在破解的一个简单的骨架实用程序的一部分我有一个用于触发文本替换的语法。我认为这是熟悉Boost.Spirit的绝妙方式,但模板错误是一种独特的乐趣。完整代码如下:#include#include#include#includenamespacebsq=boost::spirit::qi;namespace{templatestructskel_grammar:publicbsq::grammar{skel_grammar();private:bsq::rulemacro_b;bsq::rulemacro_e;bsq::ruleid;bsq::rulemacro;bsq::rulet

c++ - 如何连接两个 boost::asio::streambuf 的?

我使用boost::asio作为网络框架。作为读/写媒体,它使用boost::asio::streambuf。我想:读取一个缓冲区中的一些消息在第一个缓冲区的开头附加第二个缓冲区发送新的复合消息执行此操作的有效(零拷贝)选项有哪些? 最佳答案 这个原理叫做scatter/gatherIO。基本上是一种一次(按顺序)传输多个缓冲区的方法,无需昂贵的内存复制。它在boost::asio下得到很好的支持,具有非常灵活和强大的(但也难以掌握)缓冲区概念和缓冲区序列概念。帮助您入门的一个简单(未经测试,但我相信是正确的)示例是:std::ve

c++ - Boost变体失败

我有这样的代码:boost::variantprmJointDef;b2DistanceJointDef&prmDistaceJointDef=boost::get(prmJointDef);错误是:source\Scene\Components\JointComponent.cpp:51:96:error:nomatchingfunctionforcallto'get(boost::variant&)'\source\Scene\Components\JointComponent.cpp:51:96:note:candidatesare:boost/optional/optional

c++ - boost::multi_array 上的维度无关循环?

假设我有一个N维boost::multi_array(为简单起见,类型为int),其中N在编译时已知,但可以变化(即是一个非类型模板参数).我们假设所有维度的大小都相同m。typedefboost::multi_arraytDataArray;boost::arrayshape;shape.fill(m);tDataArrayA(shape);现在我想遍历A中的所有条目,例如打印它们。例如,如果N是2,我想我会写这样的东西boost::arrayindex;for(inti=0;i我使用了一个索引对象来访问元素,因为我认为这比这里的[]-operator更灵活。但是我怎么能在不知道维数

c++ - boost::optional 不允许我重新分配 const 值类型

在我看来应该有四个变体boost::optionaloptional=>持有一个可变的Foo并且可以在初始化后重新分配optionalconst=>持有一个constFoo并且不能在初始化后重新分配optionalconst=>(应该?)持有一个可变的Foo但不能在初始化后重新分配optional=>(应该?)持有一个constFoo并且可以在初始化后重新分配前2个案例按预期工作。但是optionalconst取消对constFoo的引用,以及optional不允许在初始化后重新分配(如thisquestion中所述)。const值类型的重新分配是我遇到的具体问题,错误是:/usr/i

c++ - 模板函数的 'typedef' (boost::make_shared)

我正在将我的项目迁移到C++11,我正在尝试使用尽可能多的标准库。在完成迁移之前,我需要一种快速的方法来在shared_ptr的boost和STL实现之间切换(以进行基准测试、单元测试等)。所以我为shared_ptr定义了一个别名,如下所示:#ifdef_USE_BOOST_templateusingshared_ptr=boost::shared_ptr#elsetemplateusingshared_ptr=std::shared_ptr#endif现在我需要为make_shared做同样的事情...但是怎么做呢?宏观?wrapper?我真的不喜欢他们中的任何一个。有哪些替代方案

c++ - Netbeans IDE 7.2.1 : How to add the c++ boost library

对于我的下一个任务,我需要在C++中进行线程处理,并且已经读到用于线程处理的boost库工作得相当好。我从来没有向Netbeans添加自定义库,希望有人可以为我提供一些要遵循的步骤,以便我可以#include它并在我的类里面使用它。到目前为止,我已经下载了以下内容:从这里boost库:http://sourceforge.net/projects/boost/files/boost/1.52.0/(不确定我在哪里提取它是否也很重要。我假设我需要将NetBeans设置为在我的包属性中的某处指向它?)适用于Windows的NetBeans7.2.1C/C++安装程序来自此处:http://