草庐IT

BOOST_PP_SEQ_FOLD_LEFT

全部标签

c++ - 如何在运行时填充 boost::fusion::vector?

首先,很抱歉与我之前的问题相似here,但我认为我问的不对。我有一个方法:templatevoidsome_method(T&t){...}接受类型fusion::vector在运行时确定-例如vector在一次通话中vector在另一个。我想用类似的东西动态地填充这个vector:intblah=5;for(inti=0;i(t)=blah;}这不起作用,因为at_c需要一个const.我已经尝试了其他方法(参见上一个问题),但仍然无法弄清楚如何实现这一点。非常感谢任何帮助!谢谢。 最佳答案 正如@Mankarse正确指定的那样,

c++ - Boost 属性树的并发问题

我开发了一个简单的包装器,它用Boost属性树封装了一个JSONObject。问题是此代码中的段错误:voidJSONObject::parse(conststd::string&text){std::istringstreamss(text);boost::property_tree::read_json(ss,*pt);}一些上下文,我正在使用JSON进行消息序列化。如果程序只使用一个线程,则它可以毫无问题地工作。但是,如果程序使用两个线程,则在上述代码的最后一行会出现段错误。每个线程都有自己的JSONObject对象,线程之间不共享任何变量。我的想法是,流可能在内部不是线程安全的

c++ - 如何在boost中遍历图使用BFS

我在编译一个非常简单的图的BFS时遇到了问题。无论我做什么,我都会收到关于不匹配方法调用的各种编译器消息(我已经尝试过boost::visitor和扩展boost::default_bfs_visitor等)#include#include#include#include#includeintmain(){typedefboost::adjacency_listgraph_t;graph_tgraph(4);graph_t::vertex_descriptora=boost::vertex(0,graph);graph_t::vertex_descriptorb=boost::vert

c++ - Boost Program_options 配置文件注释

我有一个程序使用boost::program_options从配置文件中读取大量变量。配置文件正在运行并读取值,但是由于文件中有很多选项,我想将它们记录在案。例如我希望配置文件看起来像:#Hereisadescriptionofflag1#flag1=truemeansblahblahblah#flag1=falsemeans...flag1=true#Hereisadescriptionofflag2...问题是我在任何地方都找不到描述执行此操作的方法的文档。我相当确定我可以使用诸如a=之类的东西对于我的评论分隔符,只需将所有评论分配给std::vector解析后被丢弃,但是我想知道

c++ - CMake:如何添加具有相对目录的 Boost.Test 用例?

我有一个使用CMake和Boost.Test的工作项目,其目录结构如下(请原谅ASCII艺术):+-proj|---CMakeLists.txt|---build|---test|\----dir1|\----foo.cpp//containsoneBOOST_AUTO_TEST_SUITEandseveralBOOST_AUTO_TEST_CASE||---bar.cpp//containsoneBOOST_AUTO_TEST_SUITEandseveralBOOST_AUTO_TEST_CASE\----dir2\----foo.cpp//containsoneBOOST_AUTO

c++ - OpenMP、MPI、POSIX 线程、std::thread、boost::thread 如何关联?

有几种方法可以实现多线程。std::thread最终由C++11标准引入,但可以有效地使用boost::thread。每种技术都有特定的语法和内容,但大致用于CPU并行编程。但它们有不同的作用。我知道,例如,MPI和OpenMP用于不同的内存模型。我还知道,技术的选择实际上并不是唯一的,因此可以使用另一种技术(同样是MPI和OpenMP)。为什么它们用于不同的效果但仍然使用相同的源(CPU)?如果我基于这些技术中的每一种技术编译具有并行性的C++程序,会有什么区别(从操作系统和硬件的角度来看)?例如,OpenMP或std::thread使用POSIX线程吗?如果是这样,C++11的线程

c++ - 如何在不使用 C++11 的情况下使用多个值初始化 boost::mt19937

我可以使用:boost::mt19937gen(43);这很好用,但是如果我在使用随机数生成器之前想要超过32位的种子怎么办?有没有一种简单的方法可以将64位或128位种子放入MersenneTwister?我找到了几个在生成结果之前加载多个值的示例,但没有一个代码有效。这段代码有几个问题:std::vectorseedv(1000,11);std::vector::iteratori=seedv.begin();boost::mt19937gen2(i,seedv.end());首先,调用gen2()总是返回相同的值。我不知道我是怎么搞砸的。其次,我不想要1,000个种子,但是当我将

c++ - 如何发送 http 请求并检索 json 响应 C++ Boost

我需要编写一个命令行客户端来在服务器上玩井字游戏。服务器接受http请求并将json发送回我的客户端。我正在寻找一种使用boost库发送http请求并以字符串形式接收json的快速方法。examplehttprequest="http://???/newGame?name=david"examplejsonresponse="\"status\":\"okay\",\"id\":\"game-23\",\"letter\":2" 最佳答案 符合描述的最简单的事情:LiveOnColiru#include#includeintmain

c++ - 我应该使用哪个 boost 类来存储人类年龄

我必须存储用户的年龄(年、月、日......可能是小时、分钟、秒)。我正在使用C++和boost。我不确定我应该使用哪个类的boost::posix_time(或boost::date_time)。我尝试了boost::posix_time::time_duration,但它并不明显,因为没有构造函数计算年数,它只有几个小时,所以我这样做了:boost::posix_time::time_durationage=boost::posix_time::hours(24*365*ageInYears);但我不确定这是一个好策略,因为所有年份都没有365天;-)我也试过boost::greg

c++ - boost::ptr_container 和 std::vector<shared_ptr>

看完timdaysanswer至thisquestion我很好奇boost::ptr_container之间的区别和一个std::vector.我的印象是aboost::ptr_containerhadownershipoverthepointersgiventoit,并且在释放时将调用它包含的所有指针的析构函数,而不管对其居民的其他引用。这与std::vector的目的相反,如果引用计数为0,释放后只会释放指针本身?如果是这种情况(我假设不是),为什么甚至Boost文档示例comparethetwo好像它们的目的相似,为什么timday的回答会提出boost::ptr_contain