草庐IT

ZN5boost

全部标签

c++ - 我可以使用掩码在 Boost 目录中迭代文件吗?

我想遍历目录中与somefiles*.txt等匹配的所有文件。boost::filesystem是否有内置的东西来做到这一点,还是我需要一个正则表达式或针对每个leaf()的东西? 最佳答案 编辑:如评论中所述,以下代码适用于v3之前的boost::filesystem版本。对于v3,请参阅评论中的建议。boost::filesystem没有通配符搜索,需要自己过滤文件。这是一个代码示例,使用boost::filesystem的directory_iterator提取目录内容并使用boost::regex:conststd::str

c++ - 使用 MSVC 14.0 (VS 2015) 编译 Boost 时编译器版本未知

尝试在我的计算机上编译Boost库时,我收到“未知编译器版本-请运行配置测试并报告结果”。我有最新的Boost(截至发帖日期)-1.58.0。Boost还不支持MSVC14.0吗?如何“运行配置测试”?. 最佳答案 最新(发布此答案时)Boost1.58确实支持MSVC14.0Preview,这是Boost1.58发布时最新的MS编译器。现在,VisualStudio的最新版本是2015RC,它没有包含在boost1.58配置文件中。停止Boost1.58提示未知编译器版本编辑boost/config/compiler/visual

c++ - boost::unique_lock 与 boost::lock_guard

我不太了解这两个锁类之间的区别。在boost文档中说,boost::unique_lock不会自动实现锁定。这是否意味着unique_lock和lock_guard的主要区别在于unique_lock我们必须显式调用lock()功能? 最佳答案 首先回答您的问题。不,您不需要在unique_lock上调用lock。见下文:unique_lock只是一个具有更多功能的锁类。在大多数情况下,lock_guard会做你想做的,并且足够了。unique_lock为您提供更多功能。例如,如果您需要超时或者如果您想将锁定推迟到对象构造之后的某个

c++ - 如何使用Boost解析ini文件

我有一个包含一些示例值的ini文件,例如:[Section1]Value1=10Value2=a_text_string我正在尝试使用Boost加载这些值并在我的应用程序中打印它们,但我不明白如何在C++中执行此操作。我在这个论坛中搜索以找到一些示例(我一直使用C,因此我的C++不是很好)但我只找到了有关如何一次从文件中读取值的示例。我只需要在需要时加载一个值,例如string=Section1.Value2,因为我不需要读取所有值,只需读取其中的几个。我想加载单个值并将它们存储在变量中,以便在需要时在我的应用程序中使用它们。Boost可以做到这一点吗?目前,我正在使用此代码:#inc

c++ - 如何使用 Boost 实现 C++14 风格的自动返回类型?

假设我有一个将两个值相加的函数。如果我对类型一无所知,那么我基本上必须编写两次函数;一次在实际返回值中,再次作为返回类型说明符:templateautoAdd(constA&a,constB&b)->std::decay::type{returna+b;}虽然这可行,但它是不可取的,因为它难以阅读且难以维护。在C++14中这不是问题,因为我们可以删除返回类型说明符(我不确定它是否会衰减……)。现在,我坚持使用C++11。根据我的经验,每当我在C++中寻找尚未成为标准但有明显需求的功能时,Boostlibrary通常有解决办法。我已经搜索了文档,但我没有找到任何可能对我有帮助的东西。BO

c++ - 为什么 STL/Boost C++ 编码风格与其他人如此不同?

已结束。这个问题是off-topic.它目前不接受答案。想要改进这个问题?Updatethequestion所以它是on-topic堆栈溢出。关闭9年前。Improvethisquestion我是一个相当菜鸟的C++程序员,但在我对这门语言的有限经验中,大多数标准C++风格指南(例如GoogleC++StyleGuidelines)与STL和boost库中实现的内容背道而驰。例如,C++标准库和Boost中的类名总是小写,用下划线分隔单词(例如std::vector、boost::unordered_map、std::map::const_iterator),而我看到的大多数C++风格

c++ - 为什么不能在 c++0x 模式下使用 libc++ 连接这个 boost::program_options 示例?

为boost::program_options编译此示例代码:http://svn.boost.org/svn/boost/trunk/libs/program_options/example/first.cpp...在MacOSLion(10.7.2)上,使用与MacPorts一起安装的boost-1.48.0:$clang++-vAppleclangversion3.0(tags/Apple/clang-211.12)(basedonLLVM3.0svn)Target:x86_64-apple-darwin11.2.0Threadmodel:posix$clang++-std=c+

json - 为什么 Boost 属性树 write_json 将所有内容都保存为字符串?有可能改变吗?

我正在尝试使用boost属性树write_json进行序列化,它将所有内容保存为字符串,并不是数据错误,但我每次都需要明确地转换它们,并且我想在其他地方使用它们。(如在python或其他C++json(非boost)库中)这里是一些示例代码,我得到的内容取决于语言环境:boost::property_tree::ptreeroot,arr,elem1,elem2;elem1.put("key0",0);elem1.put("key1",true);elem2.put("key2",2.2f);elem2.put("key3",3.3);arr.push_back(std::make_p

linux - 在 Linux 中链接 Boost 库

我正在尝试使用Boost的Asio构建一个项目,但遇到了一些麻烦。最初,我尝试在没有任何其他库的情况下构建项目,因为所有内容都应该在头文件中。我正在尝试构建的程序如下所示:#include#include#includeintmain(){boost::asio::io_serviceio;boost::asio::deadline_timert(io,boost::posix_time::seconds(5));t.wait();std::cout可以找到here在Boost的网站上。所以,最初我只有:-I/usr/include/boost_1_40_0这导致了以下错误:make-

linux - 如何让 CMake 找到我的替代 Boost 安装?

我已经在/usr/local中安装了最新版本的Boost(包含在/usr/local/include/boost和库在/usr/local/lib/boost),我现在正在尝试从源代码安装Wt,但CMake(2.6版)似乎找不到Boost安装。它试图提供有关设置BOOST_DIR和Boost_LIBRARYDIR的有用建议,但我无法通过调整这些变量来使其工作。我得到的最新错误消息是它找不到库,但它似乎表明它正在使用“/usr/local/include”作为包含路径,这是不正确的(并且我似乎无法修复它)。是否有解决方案可以解决这个问题,还是我需要在CMake中四处寻找才能解决?