草庐IT

ZN5boost

全部标签

c++ - 如何 boost 我的项目?

我从事跨平台(Windows、Linux、Solaris)项目。我想在这个项目中使用Boost的shared_ptr。我如何安装它,并将它与项目一起重新分发给客户?我在Linux/Solaris上没有root权限,所以我可能必须将Boost的源添加到我的源中,然后一起构建。此外,我们的Solaris版本非常旧(2.5.1,1996年5月)。它会导致shared_ptr的构建出现问题吗? 最佳答案 只需安装boost头文件(您不需要编译和安装shared_ptr的库,因为它只是头文件)。不要忘记检查是否在您的IDE中设置了boost的

c++ - 为什么 boost 正则表达式用完了堆栈空间?

#include#include#includeusingnamespaceboost;staticconstregexregexp("std::vector,?)+"">,?)+"">");std::stringerrorMsg="std::vector,""std::pair,""std::pair"">,""std::map,""std::pair,""std::pair"">"">";intmain(){smatchresult;if(regex_match(errorMsg,result,regexp)){for(unsignedi=0;i这会产生:terminatecall

c++ - 使用 Boost.Thread 编译 C++ 源文件

我正在尝试学习如何使用C++Boost.Thread库。我已经在我的Ubuntu11.10系统上安装了Boost库。我正在关注Schaling的书“TheBoostC++Libraries”——特别是第66页的示例6.1。我正在尝试编译以下代码示例:#include#includevoidwait(intseconds){boost::this_thread::sleep(boost::posix_time::seconds(seconds));}voidthread(){for(inti=0;i但是,当我从命令行使用以下命令编译它时:$g++example61.cpp-oexampl

boost 或其他任何 C++ crypt 库

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我想问一下boost是否有一些对加密任务有用的库。好吧,如果boost没有这样的库,我想听听你会推荐什么crypt库。(一些广泛使用的库)谢谢。

c++ - boost::shared_ptr 在多线程中使用它安全吗?

一段时间以来我一直试图找到答案,但我失败了。假设我们有一个从一个线程创建的shared_ptr。然后我们将这个shared_ptr传递给另外两个线程(例如使用一些队列)。所以从这一刻起,原始shared_ptr有2个拷贝,指向同一个原始指针。两个所有者线程将从队列中获取此shared_ptr的拷贝。然后他们会将其传递给另一个线程或将其销毁。问题是-它安全吗?原始指针是否会被正确销毁(不会竞争引用计数器?) 最佳答案 C++标准几乎没有关于线程安全的保证。std::shared_ptr的引用计数是唯一的异常(exception):它保

c++ - Boost.Pointer 容器在 C++11/14 中被 std::unique_ptr 淘汰了吗?

是否std::unique_ptr使Boost.PointerContainer库在C++11/14中过时?在C++98/03中没有移动语义,也没有像shared_ptr这样的智能指针。与原始指针相比,具有引用计数相关的开销(对于引用计数block和互锁增量/减量)。所以像std::vector>如果与std::vector相比有开销.但是是std::vector>与std::vector一样高效(没有引用计数开销),和此外安全关于异常和自动销毁(即vector>析构函数将自动调用析构函数对于指针存储在T中的vector项)?如果是这样,Boost.PointerContainer在C

C++ operator() 重载 boost::system::error_code 技巧

我看到了boost实现的一个绝妙技巧,他们以某种方式使用()运算符的重载来将类boost::system::error_code的实例评估为bool值classerror_code{...typedefvoid(*unspecified_bool_type)();staticvoidunspecified_bool_true(){}operatorunspecified_bool_type()const//trueiferror{returnm_val==0?0:unspecified_bool_true;}...}这导致有可能检查这样的错误...boost::system::erro

c++ - boost::uuids::uuid 作为 std::unordered_map 中的键?

我在MacOSX上使用clang(CXX='clang++-std=c++11-stdlib=libc++'),boost1.53.0。我想在unordered_map中使用uuid作为键,但出现以下错误:/usr/bin/../lib/c++/v1/type_traits:748:38:error:implicitinstantiationofundefinedtemplate'std::__1::hash':publicintegral_constant{};^/usr/bin/../lib/c++/v1/unordered_map:327:54:note:ininstantiat

c++ - 如何使用 boost::spirit 解析 csv

我有这条csv行std::strings=R"(1997,Ford,E350,"ac,abs,moon","some"rusty"parts",3000.00)";我可以使用boost::tokenizer解析它:typedefboost::tokenizer,std::string::const_iterator,std::string>Tokenizer;boost::escaped_list_separatorseps('\\',',','\"');Tokenizertok(s,seps);for(autoi:tok){std::cout它做对了,除了token“生锈”应该有双引

c++ - Boost.Log 同时记录到文件和标准输出?

我已经使用boost::log成功地记录到标准输出(使用TRIVIAL宏)或记录到一个文件(基本上按照教程中的步骤进行)。我们如何配置以同时记录到文件和stdout?这是我们设置中的一个常见用例,当我们想要同时拥有一个日志文件和所有进入控制台日志的输出时。感谢任何意见! 最佳答案 根据thedocs你可以简单地使用add_console_log()像这样的便利功能:#includelogging::add_console_log(std::cout,boost::log::keywords::format=">>%Message%"