草庐IT

boost_thread

全部标签

c++ - thread_local成员变量构造

我遇到了thread_local的一些奇怪行为,不确定是我做错了什么还是GCC错误。我有以下最小重现场景:#includeusingnamespacestd;structbar{structfoo{foo(){cerr输出上面的注释行如下所示:main0Ideone取消注释后,它变成了这样:mainfoofoo4242Ideone我是不是漏掉了什么蠢东西?$gcc-vUsingbuilt-inspecs.COLLECT_GCC=gccCOLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapperTarget:x86_6

c++ - boost 线程和 try_join_for 每次都给出不同的输出

假设我有以下代码:#include#include#includeintmain(){boost::threadthd([]{std::cout每次启动该程序时,MSVC-12.0和boost1.55都会给我不同的输出。例如,strFinishedstrFinishedstrRunning当我将boost::chrono::nanoseconds更改为boost::chrono::microseconds时,输出看起来符合预期。为什么?我究竟做错了什么?这是boost库中的错误吗?是否有关于boost错误跟踪器的票证?提前致谢。 最佳答案

c++ - 使用替代解析器 boost spirit 不佳的性能

我已经问过这个问题了。但由于没有答案,我现在再次询问完整的可编译源代码片段。由于boost::variant移动语义的一些问题,此代码片段应该在没有std=c++11选项的情况下编译。只是'g++-Wall-pedantic'。在此代码片段中,您将找到“//Commenthere”行。您可以评论以下block,直到“//Andhere-----”。如果这个block没有注释,这个程序的性能会很差。所以只要我能看到瓶颈就是替代解析器。我需要的是一些关于改进/更改语法以boost解析性能的建议。谢谢。代码:#include#include#include#include#include#i

c++ - 使用 boost 和 openssl 错误的 C++ 中的 JWT(JSON Web token )

我是一个相当新手的c++程序员(我还在上大学,所以我想我是一个相当新手的程序员),我正在尝试用c++生成一个JWT。我能够生成和编码header和有效负载,但是当我在jwt.io上检查时,我使用openssl的hmac库生成的签名似乎无效。我有一种感觉,这是由于我只是没有看到的一些细微的错误。如果您能找到我的错误,我将不胜感激。如果您也有关于如何改进我的代码的建议,我们也将不胜感激。请注意,我必须对json使用openssl和boost。****更新****我发现添加了额外的新行,这导致了身份验证期间的错误。目前我正在调用str.erase来删除它们,但如果有人能让我知道它们的去向,我

Python* 到 boost::python::object

我正在尝试用C++构建一个Python模块,将二维vector转换为Numpy二维数组。这里有什么不正确的地方-大概需要对PyObject*的boostpython对象进行一些转换?boost::python::objectbuild_day(intyear,intday){PyObject*arr;constintHEIGHT=5;constintWIDTH=5;std::vector>array(WIDTH,std::vector(HEIGHT));npy_intpdims[2]={WIDTH,HEIGHT};arr=PyArray_SimpleNewFromData(2,dims

c++ - Boost Program_Options 抛出 "character conversion failed"

我在Ubuntu14.04上,使用CMake和CLion。我正在尝试使用程序选项,以下代码取自其文档中的示例:#include#includeintmain(intac,char*av[]){namespacepo=boost::program_options;usingnamespacestd;po::options_descriptiondesc("Allowedoptions");desc.add_options()("help","producehelpmessage")("compression",po::value(),"setcompressionlevel");po::

c++ - 没有 Boost 的现代 C++ 中的 bimap 实现

这个问题之前有人问过here我承认,但现在是4年前了,所以我敢要求更新:我需要一种方法来将元组/对添加到容器并有效地搜索左右元素。Boost有bimap和multi_index,它们完全符合我的要求,但我想知道在普通现代C++-11/14中推荐的替代方案是什么,以防您不想要引入对boost的依赖(无论出于何种原因)。链接中的一个答案表明不需要s.th。由于透明比较器,它不再像bimap了。接受的答案建议将std::map组合到key1->key2和key2->key1.我真的不知道透明比较器如何在这里帮助我,我只是好奇是否有一些你应该这样做以及为什么-解决方案。你能提供一些提示/链接吗

c++ - 如何为 boost::program_options 的位置选项添加描述?

我想用boost_program_options创建一个位置列表程序选项,不允许命名程序选项(如--files)。我有以下代码片段:#include#include#include#includenamespacepo=boost::program_options;intmain(intargc,constchar*argv[]){po::options_descriptiondesc("Allowedoptions");desc.add_options()("help","producehelpmessage")("files",po::value>()->required(),"l

c++ - 使用 boost::filesystem 添加 header 后,不再找到来自 google test 的单元测试

我有一个使用谷歌测试框架的单元测试项目,我的测试工作正常。但是现在我添加了boost::filesystem标题类似#include之后我的项目链接和编译正常,但是根本没有找到测试,当我运行测试时它给了我-Processfinishedwithexitcode-1073741515(0xC0000135)Emptytestsuite.如果我有这段代码:#includeTEST(Test,Test1){ASSERT_FALSE(true);}它工作得很好并找到失败的测试用例,但是如果我像这样添加boostheader:#include#includeTEST(Test,Test1){AS

c++ - 为什么 Boost::multiprecision::sqrt(1) 返回 0?

Boost::multiprecision::sqrt(1)似乎返回0#include#include#includeusingstd::cout;usingstd::endl;intmain(){namespacemp=boost::multiprecision;mp::cpp_inti(1);cout输出:我==1mp::sqrt(i)==0我希望sqrt(1)==1。我在coliru上得到了相同的结果在我本地安装的gcc和Boost1.62上。这会发生在其他人身上吗?我是否遗漏了什么或者这是一个错误? 最佳答案 是的,这绝对是