草庐IT

boost-move

全部标签

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++ - 没有默认构造函数会导致没有 move 构造函数吗?

如果一个类没有默认构造函数,因为它应该始终初始化它的内部变量,那么它不应该有一个move构造函数吗?classExamplefinal{public:explicitExample(conststd::string&string):string_(string.empty()?throwstd::invalid_argument("stringisempty"):string){}Example(constExample&other):string_(other.string_){}private:Example()=delete;Example(Example&&other)=del

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

C++:比较 boost::filesystem 中的路径时如何忽略第一个目录路径?

我正在尝试比较两个目录并找出里面有哪些不同的文件。所以我使用boost::filesystem::recursive_directory_iterator将每个目录的所有内容添加到相应的vector中。然后我按字母顺序对每个vector进行排序并开始比较路径。问题是它包含“基本”路径,我不希望这样,例如:Version1/Assets/info.txtVersion2/Assets/info.txt那些路径比较不同,但我希望它们比较相同。澄清一下,我什至还没有检查二进制文件,到目前为止只是路径名。我会这样比较它们:/Assets/信息.txt我已经浏览了几个小时的boost文档,我相信

c++ - 无序集 : remove with move

在c++11中,std::unordered_set容器提供插入重载和新函数emplace,因此它可以与不可复制构造的键一起使用,例如std::unique_ptr。当您想删除其中一个key时会发生什么?autotemp=std::move(*some_iterator)有效吗?是否有一些函数可以让我们同时删除一个元素并将其move到临时文件中?编辑:我试着让它简短​​、甜美和简单,但要更清楚:是否有迭代器适配器(可能是move_iterator?)可以让我从容器中move元素并删除该迭代器?如果不是,为什么不呢?future的c++不应该包含这种接口(interface)吗?情况似乎