草庐IT

boost-thread

全部标签

c++ - 使用 boost::lambda::bind 有什么问题?

我正在尝试使用boost::lambda::bind()定义一个谓词,我将其传递给Boost.Range中的find_if算法。具体来说,我想搜索结构vector以找到特定成员具有指定值的第一个条目。我的例子如下:#include#include#includeusingnamespacestd;usingnamespaceboost;usingnamespaceboost::lambda;structfoo{strings;intx;};intmain(){//createlistandaddacoupleentriesvectorfooList;foof1={"abc",1};fo

c++ - 使用 Boost 避免用户在 C++ 项目中访问文本资源

我正在使用EclipseHelios、QT4.6.1集成插件和boost1.52库开发一个C++项目。我想从xml文件中提取一些要使用的信息,目前我正在通过调用boost函数constread_xml(std::string&,Ptree&,int=0,conststd::locale&=std::locale()).关键是我想避免最终用户从发布文件夹访问该xml资源,但我不知道该怎么做。有没有什么(简单的)方法可以处理可执行文件内部的xml内容,以便将其加载到内存中并继续其余的过程,就像我已经在将xml文件视为项目资源一样?任何提示都会让我非常感激。提前致谢。

c++ - boost::spirit 当词法分析器标记 > 10 时编译错误

当我尝试编译以下代码时,当token_list>10个标记时,出现编译失败(错误C2903:“应用”:符号既不是类模板也不是函数模板...)。当token#defineBOOST_VARIANT_MINIMIZE_SIZE#include#include#include#includenamespaceqi=boost::spirit::qi;namespacelex=boost::spirit::lex;templatestructtoken_list:lex::lexer{token_list(){cs1="tok1";cs2="tok2";cs3="tok3";cs4="tok4

c++ - 多个 std::threads 和主程序执行的问题

几天来,我一直在努力想出一种机制来启动一些计时器,而不是让它为主程序执行计时。.join()和.detach()、wait_until()等的组合我有一个std::thread的vector,我想:执行第一个位置等待它完成执行下一个位置等待它完成与此同时,我的应用程序的其余部分正在运行,用户点击东西等。我想出的一切似乎要么:在计时器运行时阻止主程序运行或从主线程分离,但计时器同时运行,我多么希望在前一个完成后再运行一个。我什至发布了:C++11std::threadsandwaitingforthreadstofinish但我似乎无法理解任何一个解决方案。我应该使用std::launc

c++ - 未找到 Boost 库,但编译正常

我正在尝试在C++中使用来自boost的文件系统使用的时候好像编译没问题"c++-cAnalyse.c-oAnalyse.o-g-W-Wall-L/usr/local/lib-lboost_filesystem-lboost_system"但是在尝试执行我的代码时出现以下错误:"errorwhileloadingsharedlibraries:libboost_filesystem.so.1.54.0:cannotopensharedobjectfile:Nosuchfileordirectory",afind/-iname"libboost_system.so.1.54.0我在安装b

c++ - 检测 boost 测试用例是否失败

我想记录更多关于BOOST断言失败的数据。不确定这是否可能以及如何实现。BOOST_AUTO_TEST_CASE(TestCase1){Datad;d.fillUp(...);d.operation1(...);BOOST_CHECK(d==...);d.operation2(...);BOOST_CHECK(d==...);...if(/*anythingabovefailed*/){log我对最后一个条件有疑问。你能建议吗?我希望错误日志指示发生断言时Data对象中的条件。理想情况下,我希望它们被转储一次,即使在测试用例中发生了多个断言。 最佳答案

c++ - 使用 boost::filesystem 3.0 迭代文件

我想遍历目录中与“keyword.txt”匹配的所有文件。我在谷歌搜索了一些解决方案,发现了这个:CanIuseamasktoiteratefilesinadirectorywithBoost?我后来发现,“leaf()”函数已被替换(来源:http://www.boost.org/doc/libs/1_41_0/libs/filesystem/doc/index.htm->转到“已弃用的名称和功能”部分)到目前为止我得到的是这个,但它没有运行。很抱歉这个有点愚蠢的问题,但我或多或少是一个C++初学者。conststd::stringtarget_path("F:\\data\\");

C++11 多线程 : State of thread after execution

线程执行完成后的状态是什么?是执行完立即销毁还是随父线程一起销毁? 最佳答案 std::thread对象不同于底层控制线程(尽管它们应该一对一映射)。这种分离非常重要,它意味着std::thread和控制线程可以有不同的生命周期。例如,如果你在堆栈上创建你的std::thread,你真的需要在你的对象被销毁之前调用thread::detach(如果你没有析构函数将调用terminate)。此外,正如Grizzly指出的那样,您可以在对象销毁之前调用.join(),这将阻塞直到线程执行完成。这也回答了您的问题-std::thread对

c++ - 为什么在全局变量的析构函数中调用 thread.join 会失败

我将有问题的代码简化为以下内容。我有一个C类,它在自己的线程上运行一个成员函数。在C的析构函数中,我想干净地退出这个线程。只要c是在main(1)中定义的,它就可以正常工作,但当它是一个全局变量(2)时就不行了。在后一种情况下,我看到线程函数返回但t.join()挂起。#include#include#include#includeusingnamespacestd;classC{public:C(){stop=false;t=thread(&C::ThreadFunc,this);}~C(){stop=true;cv.notify_all();if(t.joinable()){cou

c++ - 使用 BOOST.python 将结构从 C++ 返回到 Python

我已经编写了一个C++方法,我需要从中向Python返回一个结构。我已经能够按照此link中描述的方法使用BOOST将OpenCVmat从Python发送到C++.现在我需要走另一条路;从C++返回到Python,然后在Python中访问该结构。可以吗?任何样本或引用链接都会很好。在发布此问题之前,我曾尝试使用谷歌搜索,但无法获得任何样本或解释链接。 最佳答案 您可以使用modules/python/src2/cv2.cpp中的另一个函数:PyObject*pyopencv_from(constcv::Mat&m){if(!m.da