草庐IT

boost-pool

全部标签

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

c++ - Boost 程序选项中的 vector 参数

我有两个相关的问题:使用BoostProgramOptions允许传递一系列值的最简单方法是什么?我的目标是避免使用prog--opt1--opt2--opt3并改为使用prog--opt123。最简单的方法是选择恰好两个数字的选项,例如prog--opt13742?(我不需要任何“免费”程序参数。) 最佳答案 这是一个迟到的答案,但我希望它对某人有所帮助。您可以轻松地在第1项中使用相同的技术,但您需要对vector中的项数添加另一个验证:来自rcollyer的示例:namespacepo=boost::program_option

c++ - boost::shared_ptr 和 std::shared_ptr 的共存

我想在某个时候使用boost::log,但我不能将std::shared_ptr作为参数传递,因为编译器(VS2010)无法转换将其转换为boost::shared_ptr。我真的不喜欢他们彼此是外星人这一事实。是否有一种安全且透明的方式将一个转换为另一个,以免它们相互绊倒?我不认为它与thisquestion重复这表明两者是相同的。 最佳答案 你可以这样做:templateboost::shared_ptrmake_shared_ptr(std::shared_ptr&ptr){returnboost::shared_ptr(pt

c++ - boost.org 的 Spirit 解析器生成器框架有哪些缺点?

在几个问题中,我看到了对Spirit的建议。解析器生成器框架来自boost.org,但是在评论中,使用Spirit的人不开心的提示。请那些人站出来向我们解释一下使用Spirit的缺点或缺点是什么? 最佳答案 这是一个很酷的想法,我喜欢它;真正学习如何使用C++模板特别有用。但他们的文档建议将spirit用于中小型解析器。完整语言的解析器需要很长时间才能编译。我将列出三个原因。无扫描仪解析。虽然它相当简单,但当需要回溯时,它可能会减慢解析器的速度。虽然它是可选的-可能会集成词法分析器,请参阅使用Spirit构建的C预处理器。大约300

c++ - 使用 boost 或 STL 对 C++ 中的压缩(锁定)容器进行排序

我想做的事:我想将2个、3个或N个vector排序,锁定在一起,不将它们复制到一个元组中。也就是说,抛开冗长,例如:vectorv1={1,2,3,4,5};vectorv2={11,22,33,44,55};vectorv3={111,222,333,444,555};typedeftupletup_t;sort(zip(v1,v2,v3),[](tup_tt1,tup_tt2){returnt1.get()>t2.get();});for(auto&t:zip(v1,v2,v3))cout()()()这应该输出:555555444444...111111我现在是怎么做的:我已经实现

c++ - 如何仅使用 boost 将字符串编码为 base64?

我正在尝试将一个简单的ASCII字符串快速编码为base64(使用boost::asio的基本HTTP身份验证),而不是粘贴任何新代码或使用boost之外的任何库。简单的签名看起来像:stringBase64Encode(conststring&text);我再次意识到该算法很简单,并且有很多库/示例这样做,但我正在寻找一个干净的boost示例。我发现了boost序列化,但那里或谷歌没有明确的例子。http://www.boost.org/doc/libs/1_46_1/libs/serialization/doc/dataflow.html如果不将实际的base64算法显式添加到我的

c++ - Boost::Tuples vs Structs 返回值

我正试图了解元组(感谢@litb),使用它们的常见建议是返回>1值的函数。这是我通常会使用结构的东西,在这种情况下我无法理解元组的优势-对于最终懒惰的人来说,这似乎是一种容易出错的方法。Borrowinganexample,我会用这个structdivide_result{intquotient;intremainder;};使用元组,您将拥有typedefboost::tupledivide_result;但是,如果不阅读您正在调用的函数的代码(或注释,如果您愚蠢到相信它们),您将不知道哪个int是商,反之亦然。好像有点……structdivide_result{intresults