草庐IT

boost_thread

全部标签

c++ - 是否可以将重载方法传递给 std::thread

我是线程的新手,我正在尝试将重载方法传递给std::thread,如下例所示#include#includeintdo_calculation(intx){std::cout但程序没有编译并抛出错误nomatchingfunctionforcallto'std::thread::thread(,int)'std::threadt1(do_calculation,20);有没有办法在线程中调用重载方法? 最佳答案 您需要强制转换函数以解决重载问题:std::threadt1(static_cast(do_calculation),20

c++ - 轻量级 boost::bind

我对pass-callback-data-as-void*-struct反模式感到厌烦。Boostbind很好地解决了它,但它是一个NotAcceptable依赖项。什么是轻量级替代品?我将如何尽可能简单地自己编写它? 最佳答案 首先,我质疑您关于它太重以至于您无法使用的说法。其次,如果您需要控制行为,请滚动您自己的模板。第三,如果你害怕滚动自己的模板,我怀疑你判断boost::bind太重以至于你无法使用的能力。 关于c++-轻量级boost::bind,我们在StackOverflo

c++ - 从boost库源码学习c++

我对c++很感兴趣,想掌握这门语言。我读了很多关于c++的书。想看一些库源码boost自己的技术,但是在看boost库源码的时候,发现难度很大。谁能给我一些关于如何阅读boost源代码的建议,在我理解它之前我应该阅读什么样的c++书籍? 最佳答案 如果您刚开始使用C++,那么boost源代码可能不是最好的地方。这是巫师们常去的地方,他们处理模板魔法。我认为更好的起点是ScottMyers和HerbSutters的书(按此顺序)。Scott的书的某些版本可能有点过时,但它们的基本原理仍然很强大。Herb的书值得多次阅读,是非常宝贵的工

c++ - 一旦 std :thread makes into C++Ox,pthreads 会过时吗

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion显然我们仍会维护它,但一旦C++标准保证可用,它会有多大用处。随着新标准的出现,同步原语(Mutex、条件变量)会怎样?您是否认为pthread比std::thread更难掌握?

c++ - 可以使用 thread_local 在 dll 中为每个线程提供一个静态全局变量吗?

我想使用C++11关键字thread_local在我们的开源库中,它可以在静态变量的上下文中动态或静态地链接到许多平台(Windows、Linux、MacOS等)上。这个变量是一个类类型,基本上只是封装一个std::stringstream变量并初始化它以满足我们的stringstream格式要求。出于性能原因,我们希望它静态可用(有关更多详细信息,请参阅我之前的question),如果这是每个线程完成的也可以。全局变量应该在静态模板类方法中使用,这些方法必须在头文件中实现。但这意味着,如果我理解正确的话,库的用户可能会在他们的可执行文件代码中包含此header,这会将模板化方法编译到

c++ - Boost BCP 不输出任何文件?

我正在尝试使用BoostCopy(BCP)用于将normal_distribution类从Boost中拉出的实用程序。但是,当我执行bcpnormal_distribution./my_normal_distribution_dir时,my_normal_distribution_dir目录中没有任何内容。这里有一些关于我正在执行此操作的环境的更详细的背景信息:在MacOS10.7上,我下载了Boost1.50和未压缩的源文件。在顶级Boost目录中,我执行了./bootstrap.sh。然后,我执行了./bjam./tools/bcp,它在./dist/bin目录中生成了一个bcp可

c++ - 将 fork() 与 boost::asio::ip::tcp::iostream 一起使用是否安全?

我正在尝试守护一个简单的TCP客户端,虽然客户端在前台工作得很好,但守护它会导致奇怪的行为。作为测试用例,我有一个服务器,一旦您连接并发送一条消息(“已连接”),它就会每秒向您发送一次连接的秒数。如果我进行守护进程(通过调用Test::Connect(true)),连接会在任意时间后断开,即使在成功接收到一些数字后也是如此。如果我不进行守护进程(通过调用Test::Connect(false)),连接将保持事件状态并且我会继续按预期接收号码。#include#include#include#includeclassTest{public:Test(){io=nullptr;}voidC

c++ - boost::edge 导致段错误

我正在尝试使用boost图形库,但在尝试使用boost::edge()时出现段错误。完整代码可用here,但在这里我制作了一个具有相同问题的最小程序(我正在使用“g++minimal.cpp”进行编译):#include#includeusingnamespaceboost;usingnamespacestd;typedefadjacency_listgraph_t;typedefgraph_traits::edge_descriptoredge_descriptor;intmain(){graph_tG;//add_edge(1,3,G);//remove_edge(1,3,G);p

c++ - 将指针从 C++ 传递到 Python/w boost python?

我正在使用BoostPython,我在C++中生成了一个大的整数vector,我想在Python中访问这个vector而不复制它。在C++中我有:BOOST_PYTHON_MODULE(myModule){class_>("vectorInt").def(vector_indexing_suite>());def("ReturnVectorPtr",ReturnVectorPtr,return_value_policy());}vector*ReturnVectorPtr(){returnnewvector();}然后在python中我有:importmyModulemyModule.

c++ - 为 boost python 编译的 .so 找不到模块

我正在尝试将C++代码包装到Python中,只需一个类即可导出两个函数。我编译为map.so,当我尝试importmap时出现类似噪音的错误Traceback(mostrecentcalllast):File"",line1,inImportError:./map.so:undefinedsymbol:_ZTIN5noise6module6ModuleE我的c++目录看起来像(噪音是下载的源代码,所有代码都在src里面)/map.cppreal_map.hreal_map.cppnoise/src/.hand.cppandnewdirectory我的CMakeLists.txt看起来像