草庐IT

boost-pool

全部标签

c++ - 执行 identity boost::lexical_cast 有什么开销?

给定一个函数,例如:templatevoidfunction1(constT&t){function2(boost::lexical_cast(t));}如果传递给function1的类型已经是std::string,会产生什么样的开销?开销是否会根据我要lexical_cast-ing的类型而有所不同?做一个重载函数来绕过强制转换是多余的吗?例如:voidfunction1(conststd::string&t){function2(t);}templatevoidfunction1(constT&t){function1(boost::lexical_cast(t));}boost

c++ - boost 不可复制的怪异性

我有一个继承自boost::noncopyable的类;比如说,标题摘录如下:classA:boost::noncopyable{...blah...private:structimpl;boost::scoped_ptrm_impl;};然后在我的解决方案的一个项目中,我有一个类(它也恰好继承自boost::noncopyable),它的私有(private)成员在实现细节中是对A类型的对象,例如,在header摘录中:classB:boost::noncopyable{...blah...private:structimpl;boost::scoped_ptrm_impl;};在执

c++ - boost::posix_time::microsec_clock CPU 密集吗?

我想使用Boost获取毫秒精度的时间。(精度不需要毫秒,接近即可。)引用Localtimewithmilliseconds,等,说明应该使用微秒时钟:boost::posix_time::microsec_clock::local_time();根据我的经验,使用标准的、低影响的系统调用(即Windows上的::GetTicks())不可能获得精确到微秒的时间(假设具有类似的精度)).相反,需要发出CPU密集型调用以boost超过毫秒(进入微秒)的精度。正如我提到的,我不需要微秒级的精度-只需稍微接近毫秒级的精度即可。然而,Boost.Date_Time不提供任何“millisec_c

c++ - boost 随机和 OpenMP

我从代码的OpenMP并行部分收到“总线错误”。我在下面重新创建了一个简单版本的问题。该代码实质上对函数uniform_distribution进行了多次调用。,它使用Boost的uniform_int_distribution绘制一个0到20000之间的整数。这post警告两个线程访问同一个对象。我猜那是eng就我而言。(不幸的是,我不知道如何编写“合适的互斥包装器”,正如该帖子所建议的那样)。我想到的一个可能的肮脏解决方案是创建一个本地eng在#pragmafor里面循环并将其作为参数传递给uniform_distribution.我不喜欢这个想法,因为在我的真实代码中,我调用了很

c++ - Boost 进程间分配器 - 管理文件大小

首先,我将概述带有源的域。namespacebip=boost::interprocess;typedefbip::allocatorallocator;typedefbip::vectorvector;bip::managed_mapped_filem_file(open_or_create,"./file",constant_value);bip::allocatoralloc(m_file.get_segment_manager());bip::vector*vec=m_file.find_or_construct("vector")(alloc);我不关心底层文件的最终大小,但

c++ - boost hash 为不同的输入返回相同的值

我有两个对象,Account和Transaction,其中Transaction是唯一的一对Account和一个递增的ID号。我想使用boost::hash来获取这些的唯一值,并根据说明重载hash_value方法:http://www.boost.org/doc/libs/1_53_0/doc/html/hash/custom.htmlclassAccount{...};classTransaction{Accountaccount;unsignedintid;};Account的hash_value方法工作正常,并且返回的值对于给定的帐户始终是唯一的,但是要生成唯一的对,Trans

c++ - Boost.Graph 如何合并两个顶点/契约(Contract)边

如何在Boost.Graph中合并两个顶点/契约边?我需要将边从顶点A移动到顶点B,并删除顶点A-是否有任何内置函数?或者adjacency_list有什么特别之处?如果没有这样的功能——那为什么呢?我认为是普通的图形操作。编辑:我确实知道可以手动执行此操作,但有一些特殊情况(如保留边缘属性),这就是为什么它是在库中的好候选者。我最想知道的是Boost.Graph是否已经有那个操作(也许有一些奇特的名字?)。如果不是-为什么这种原始操作/算法不在Graph库中。也许我遗漏了一些东西,并且该操作不是原始的或很少使用的。我不需要半生不熟的快速概念验证 最佳答案

c++ - C++ boost 的滚动最小值和滚动最大值?

我有一些代码使用Boost累加器来跟踪滚动窗口中的平均值——“滚动平均值”。除了滚动平均值之外,我还想跟踪同一滚动窗口中的最小值和最大值。有没有一种方法可以使用Boost累加器计算滚动最小值和滚动最大值?我看不到办法...我已经尝试将最小和最大标签添加到用于rolling_mean的累加器中,但这并没有给我想要的结果。typedefaccumulator_set>rollingMeanAcc_t;成为typedefaccumulator_set>rollingMeanAcc_t;但是,此处提供的最小值和最大值是在整个累加器上计算的,而不是限于与平均值相同的滚动窗口。boostdocum

c++ - 如何找到 boost 运行时版本

我正在编写一个使用boost的C++库。在这个库中,我想包含有关用于编译我的库的二进制版本的boost版本的信息。我可以使用宏BOOST_VERSION,这很好。我还想确定哪个是boost的运行时版本,以便我可以与用于编译我的库的boost版本进行比较。显然我不能使用宏,因为它会在编译时给我硬编码版本,而不是在运行时。我需要的是boost中的一个函数(比如boost::get_version())。有没有办法在boost中做到这一点? 最佳答案 您可以使用宏创建一些代码,如下所示:std::cout这适用于boost1.51.x及更

c++ - boost .python : Argument types did not match C++ signature

我在python中调用C++函数时遇到一个奇怪的问题。我公开了一个我想从中调用函数的类:class_>("MyClass",init())//....def("someFunc",&MyClass::someFunc);我得到一个std::shared_ptr来自另一个类的成员变量,该类通过.def_readonly(...)公开当我尝试调用该函数时,出现以下错误:File"pytest.py",line27,intest_funccu.someFunc("string")Boost.Python.ArgumentError:PythonargumenttypesinMyClass.s