草庐IT

ZN5boost

全部标签

c++ - C++0x 概念和 Boost 概念检查库 (BCCL) 有什么区别?

Concepts没有使C++0x成为标准,但Boost仍然提供TheBoostConceptCheckLibrary(BCCL).我猜BCCL并没有涵盖C++0x标准中的所有内容。BCCL和提议的C++0x解决方案有什么区别? 最佳答案 检查模板定义这些手动解决方案的概念的一个很大区别是概念允许对模板的定义进行类型检查,而无需做任何特殊的事情。概念检查库只允许对它的*use*进行类型检查(除非您手动编写测试实例化类型或为标准情况使用提供的类型,见下文)。例子:templateintdistance(InputIteratora,In

c++ - Boost.Spirit 可以在理论上/实践上用于解析 C++(0x)(或任何其他语言)吗?

理论上可以胜任吗?是否可以实际完成?生成的解析器是否能以足够的性能和输出(例如,LLVMIR或GCC的gimple)集成到竞争编译器中? 最佳答案 对不起。我和它的作者谈过,他说他不会让它完全解析C++,但承认他接受它来解析某些结构是模棱两可的。所以这不再是答案了!!我建议你看看scalpel.从它的主页Scalpelstandsforsourcecodeanalysis,libreandportablelibrary.ThisisaC++librarywhichaimstoperformfullsyntaxand

c++ - 将 BOOST_FOREACH 替换为 "pure"C++11 替代方案?

是否可以将此示例中的BOOST_FOREACH替换为“纯”C++11等效项?#include#include#include#includeintmain(){std::mapmap={std::make_pair(1,"one"),std::make_pair(2,"two")};intk;std::stringv;BOOST_FOREACH(std::tie(k,v),map){std::cout关键特性是在k和v的引用中保留键/值对。我试过了:for(std::tie(k,v):map){std::cout和autoi=std::tie(k,v);for(i:map){std::

c++ - 与 Boost (Homebrew) Mac c++ 链接

您好,我正在尝试与boost链接以使用线程库,但似乎无法构建它。我使用HomeBrew(mac软件包安装程序)安装了boost,它位于/usr/local/Cellar/boost/1.50.0目录中。我的主文件现在很简单...#include#include我的make文件是这样的:CC=g++BASE_FLAGS=-m32-wAll#INCLUDEBASEDIRECTORYANDBOOSTDIRECTORYFORHEADERSLDFLAGS=-I/usr/local/Cellar/boost/1.50.0/include-I/opt/local/include#INCLUDEBAS

c++ - 如何使用 boost::lexical_cast 和 std::boolalpha?即 boost::lexical_cast< bool > ("true")

我已经看到其他boost::lexical_cast问题的一些答案,这些问题断言以下是可能的:boolb=boost::lexical_cast("true");这不适用于g++4.4.3boost1.43。(也许它确实适用于默认设置std::boolalpha的平台)This是字符串到bool问题的一个很好的解决方案,但它缺少boost::lexical_cast提供的输入验证。 最佳答案 除了答案形式poindexter之外,您还可以将here中的方法包装起来。在boost::lexical_cast:的特殊版本中namespa

c++ - 是否有任何boost::asio异步调用会自动超时?

我有一个客户端和服务器异步使用boost::asio。我想添加一些超时以关闭连接,如果出现问题,则可能重试。我最初的想法是,每当我调用async_函数时,在我希望异步操作完成之后,我也应该启动deadline_timer过期。现在我想知道在每种情况下是否都必须这样做。例如:async_resolve大概使用内置了超时功能的系统解析器(例如RES_TIMEOUT中的resolv.h可能会被/etc/resolv.conf中的配置覆盖)。通过添加自己的计时器,我可能会与用户希望其解析器工作的方式发生冲突。对于async_connect,connect(2)系统调用内置了某种超时功能等那么,

c++ - 如何在 Windows 上使用 gzip 和 bzip2 支持构建 boost iostreams

如何在gzip和bzip2支持下构建boost的iostreams库? 最佳答案 我不是专家,但这对我有用。选项1(直接来自源代码)下载zlib的源文件对于bzip2.解压下载到目录,移动目录到你喜欢的地方。我不得不避免C:\ProgramFiles(x86)\因为我无法让它与目录名称中的空格一起使用,所以我创建了C:\Sys\并使用它。使用boost的权限(以管理员身份运行)打开命令提示符,转到您的boost目录,例如C:\ProgramFiles(x86)\boost\boost_1_50_0\并输入b2.exe--with-i

c++ - 具有 std::unique_ptr 与 boost::ptr_container 的 STL 容器

有了c++11,我问自己是否可以替换c++11中的boost::ptr_containers。我知道我可以使用例如一个std::vector>,但我不确定这是否是一个完整的替代品。处理这些情况的推荐方法是什么? 最佳答案 我决定编写一个简短的程序,将一些多态对象放入一个容器中(通过指向堆的指针),然后将该容器与std::algorithm一起使用。我选择了std::remove_if只是一个例子。这是我将如何使用vector>:#include#include#includeclassAnimal{public:Animal()=d

c++ - boost::threadpool::pool vs.boost::thread_group

我试图了解不同的用例。以及2个线程使用之间的区别。This是我读过的很好的教程,它解释了boost::thread_group。这是我正在使用的代码:boost::threadpool::pools_ThreadPool(GetCoreCount());CFilterTasktask(pFilter,//filtertorunboost::bind(&CFilterManagerThread::OnCompleteTask,this,_1,_2)//OnCompletesynccallback//_1willbefiltername//_2willbeerrorcode);//sche

c++ - Qt4 + CGAL - "BOOST_JOIN"处的解析错误

我在尝试使用Qt4和CGAL编译代码时收到错误Parseerrorat"BOOST_JOIN"。我没有直接使用Boost,我已经搜索并尝试了一堆选项,例如-DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED和-DBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION。我正在使用的版本是CGAL4.1.0、Qt4.8.4_6和Boost1.53.0_1,并在MacOS10.8.2机器中使用CMake生成Makefile。关于可能导致该错误的任何想法? 最佳答案 这个问题发生在Boost1.