草庐IT

ZN5boost

全部标签

c++ - 如何让 C++ Boost 线程休眠

似乎不可能使用boost::thread来休眠线程。方法sleep需要一个system_time但我该如何构建它?查看库并没有太大帮助...基本上我有一个线程在我作为入口点传递给这个线程的函数内部,我想调用类似boost::this_thread::sleep什么的,怎么办?谢谢 最佳答案 取决于您的Boost版本:要么...#include#includeboost::this_thread::sleep_for(boost::chrono::milliseconds(100));或者……#include#includeboost

c++ - 如何使用 boost::filesystem "normalize"路径名?

我们在我们的应用程序中使用了boost::filesystem。我有一个“完整”路径,它是通过将多个路径连接在一起构建的:#include#include namespacebf=boost::filesystem;intmain(){bf::pathroot("c:\\some\\deep\\application\\folder");bf::pathsubdir("..\\configuration\\instance");bf::pathcfgfile("..\\instance\\myfile.cfg");bf::pathfinal(root/subdir/cfgfile);c

c++ - 如何使用 boost::crc?

我想使用boost::crc以便它像PHP'scrc32()一样工作功能。我尝试阅读horribledocumentation后来很多头疼我都没有任何进展。显然我必须这样做:intGetCrc32(conststring&my_string){returncrc_32=boost::crc(my_string.c_str(),my_string.length());}bits应该是32..其他的东西是什么是个谜。一点帮助?;) 最佳答案 DanStory和ergosys提供了很好的答案(显然我找错地方了,这就是为什么令人头疼的原因)

c++ - boost make_shared 接受一个 const 引用。有什么办法可以解决这个问题?

我在我的程序中使用boost共享指针,并且我有一个类,它以对另一个对象的引用作为参数。我遇到的问题是make_shared函数要求所有参数都是const引用,如果我的类的构造函数不允许传入const引用参数,则会出现编译错误。有人知道这背后的原因吗?另外,有什么办法可以解决这个问题吗?给我带来问题的代码示例:classObject{public:Object(int&i){i=2;}};intmain(intargc,char*argv[]){inti=0;boost::shared_ptrobj=boost::make_shared(i);return1;}这会导致编译器错误,指出以

c++ - 使用 boost C++ 库?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:BoostLibrary当我尝试(但失败)一个C++项目时,我经常在浏览网页时遇到Boost。我尝试阅读Boost网站,但没有很好的简短说明为什么要使用Boost以及它到底是什么。我非常喜欢Python的一件事是,一切都是内置的和跨平台的,Web请求、电子邮件、XML、JSON等。Boost也是这种情况吗?所以,足够的咆哮,我可以回答的具体问题:究竟什么是Boost?使用Boost最重要的原因是什么?它是完全跨平台的吗?它是否比常规自制代码更“安全”,您可以快速忽略一个缓冲区溢出等?是否有任何链接可以用一两句

c++ - boost 变体 : how to get currently held type?

据我了解,boost.variant的所有类型被解析成真正的类型(意思好像boostvarianta;a="bla-bla"会在编译后变成stringa;a="bla-bla")所以我想知道:如何让什么类型被放入boost变体?我尝试了什么:#include#include#include#includeintmain(){typedefboost::functionfunc0;typedefboost::functionfunc1;typedefboost::variantvariant_func;func1fn=std::plus();variant_funcv(fn);std::

c++ - VexCL、Thrust 和 Boost.Compute 的区别

只要粗略了解这些库,它们看起来就非常相似。我知道VexCL和Boost.Compute使用OpenCl作为后端(尽管v1.0版本的VexCL也支持CUDA作为后端),而Thrust使用CUDA。除了不同的后端,它们之间有什么区别。具体来说,他们解决了哪些问题空间以及我为什么要使用一个而不是另一个。此外,在推力常见问题解答中指出TheprimarybarriertoOpenCLsupportisthelackofanOpenCLcompilerandruntimewithsupportforC++templates如果是这样,VexCL和Boost.Compute怎么可能存在。

c++ - 如何使用 C++0x 支持构建 Boost?

我不知道如何使用C++0x编译器构建Boost。必须给bjam哪个选项?是否应该修改user.config文件?有人可以帮助我吗?最好,维森特 最佳答案 我找到了答案。我正在等待类似“std”的功能,并将其命名如下:bjamstd=0x但目前我们需要使用低级变量cxxflags并添加特定的编译器标志。例如对于gcc,我们可以这样做bjamtoolset=gcccxxflags=-std=gnu++0x其他编译器需要不同的设置。等待新的Boost.Build功能,您还可以定义自己的工具集,如下所示:添加user.config或site

c++ - 如何将 boost::posix_time::ptime 转换为 time_t?

是否有一些“标准”方法或者我能做的最好的方法是直接通过从gregorian::date(1970,1,1)中减去来计算它? 最佳答案 由于@icecrime的方法转换了两次(ptime在内部使用线性表示),我决定改用直接计算。这里是:time_tto_time_t(boost::posix_time::ptimet){usingnamespaceboost::posix_time;ptimeepoch(boost::gregorian::date(1970,1,1));time_duration::sec_typex=(t-epoc

c++ - CMake 无法找到 BOOST 库

我尝试了以下所有方法:配置环境变量重新构建从源代码重新安装BOOSTsudoapt-getinstalllibboost-all-dev但仍然出现以下错误:CMakeErrorat/usr/share/cmake-2.8/Modules/FindBoost.cmake:1131(message):UnabletofindtherequestedBoostlibraries.UnabletofindtheBoostheaderfiles.PleasesetBOOST_ROOTtotherootdirectorycontainingBoostorBOOST_INCLUDEDIRtothed