草庐IT

boost_process

全部标签

c++ - 理解 Boost.Spirit 中的列表运算符(%)

你能帮我理解a%b解析器和它在Boost.Spirit中扩展的a>>*(b>>a)形式之间的区别吗?尽管thereferencemanual声明它们是等价的,Thelistoperator,a%b,isabinaryoperatorthatmatchesalistofoneormorerepetitionsofaseparatedbyoccurrencesofb.Thisisequivalenttoa>>*(b>>a).以下程序根据使用的不同产生不同的结果:#include#include#include#include#includestructRecord{intid;std::v

c++ - boost 备忘单

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我刚刚有一个在C++上进行简单操作的项目,然后当我几乎完全完成该项目时,我发现所有这些愚蠢的任务只需要一部分boost。这非常令人沮丧,让我想知道有多少这些烦人的问题可以通过boost库的一个功能来解决。所以问题是,boost库是否有备

java - 我可以使用 C++ Boost shared_ptr 进行编程,就好像我在用 Java 编写代码一样,而不关心内存管理吗?

我用C/C++编写代码已经有一段时间了,现在我正在做的项目需要它的效率。我从这个shared_ptr中了解到,它基本上是在我需要时删除对象。因此,例如,如果我的对象有一个shared_ptrvector,我就不必担心遍历vector并删除析构函数中的每个元素了吗?也就是说,我只要用这些就不用担心内存管理了?还是我完全误解了这一点?听起来好得令人难以置信。 最佳答案 你必须明白共享指针是使用引用计数实现的,这意味着如果你的指针图中有循环,那么对象将不会被释放。也就是说,如果a指向b,b指向a,但没有任何东西指向a或b,那么a和b都不会

c++ - 我可以从 boost 的 weak_ptr 获得原始指针吗?

是否可以从boost::weak_ptr获取原始指针?Boost的shared_ptr有get()方法和“->”运算符。weak_ptr不具有相同功能背后有什么理由吗? 最佳答案 weak_ptr拥有一个非拥有引用,因此它所引用的对象可能不再存在。使用weak_ptr持有的原始指针本质上是危险的。正确的方法是使用weak_ptr::lock()将weak_ptrboost为shared_ptr并从中获取指针。Boostweak_ptrdocumentation解释了为什么将get()功能作为weak_ptr的一部分提供是不安全的,并

c++ - 如果 boost::thread 创建线程失败,它会做什么?

如果创建线程失败,boost::thread会做什么?winAPI返回NULL(我猜posix做了类似的事情)但是由于线程是一个对象,我该如何测试线程是否已创建? 最佳答案 根据API,如果线程创建失败,它会抛出一个boost::thread_resource_error。我猜你不能创建一个无效的boost::thread对象:如果出现问题,构造函数会抛出异常从而阻止对象的创建。 关于c++-如果boost::thread创建线程失败,它会做什么?,我们在StackOverflow上找到

c++ - 访问 boost::tuple 的成员

我正在尝试实现一个vector,例如vector>day;我想访问元组的第一个元素来检查条件。有人可以告诉我该怎么做吗?我是新来的。提前致谢。 最佳答案 #include#include#includeintmain(){std::vector>v;v.push_back(boost::make_tuple(1,2,3));std::cout(v[0])(v[0])(v[0]) 关于c++-访问boost::tuple的成员,我们在StackOverflow上找到一个类似的问题:

c++ - boost 测试 - 'undefined reference' 错误

我有两个简单的文件:运行者.cpp:#defineBOOST_TEST_DYN_LINK#defineBOOST_TEST_MODULEMain#include和test1.cpp:#defineBOOST_TEST_DYN_LINK#ifdefSTAND_ALONE#defineBOOST_TEST_MODULEMain#endif#includeBOOST_AUTO_TEST_SUITE(Foo)BOOST_AUTO_TEST_CASE(TestSomething){BOOST_CHECK(true);}BOOST_AUTO_TEST_SUITE_END()为了编译,我正在使用:$

c++ - 序列化原始 boost::variant 是否安全?

boost::variant声称它是一个值类型。这是否意味着简单地写出boost::variant的原始表示并稍后加载它是安全的,只要它只包含POD类型?假设它将由相同编译器和相同版本的boost在相同架构上编译的代码重新加载。此外,(可能)等价地,可以在共享内存中使用boost::variant吗? 最佳答案 尝试只包含boost/serialization/variant.hpp;它会为您完成工作。 关于c++-序列化原始boost::variant是否安全?,我们在StackOve

c++ - boost::asio async_read 保证读取所有字节

我有一个服务器从客户端接收压缩字符串(用zlib压缩),我使用的是async_receive来自boost::asio库来接收这个字符串,但事实证明不能保证所有字节都将被接收,所以我现在必须将它更改为async_read.我面临的问题是接收到的字节大小是可变的,所以我不确定如何使用async_read不知道要接收的字节数。随着async_receive我只有一个boost::array,然而这是一个不一定完全填满的缓冲区。我想知道是否有人可以建议一个解决方案,即使我不知道要提前接收的字节数,我也可以使用async_read?voidtcp_connection::start(boost

c++ - boost 的正则表达式无法编译

我在Ubuntu上使用boost1.45.0,Code::Blocks作为我的IDE,但我无法编译basic_regex.hpp。我很确定我正确设置了boost,因为我可以使用boost::format编译程序而不会出现任何错误。但是我遇到了这个烦人的错误,我不知道如何摆脱它。引发错误的代码:boost::regexe("\"http:\\\\/\\\\/localhostr.com\\\\/files\\\\/.+?\"");编译器输出(GCC):obj/Debug/main.oInfunction`boost::basic_regex>>::assign(charconst*,ch