草庐IT

boost-thread

全部标签

c++ - 可以在运行时在不同的 Boost 伪随机数生成器之间进行选择吗?

我正在使用BoostRandom库为蒙特卡罗模拟生成随机数。为了检查我的结果,我希望能够为不同的运行使用不同的RNG引擎。理想情况下,我想使用命令行选项来确定在运行时使用哪个RNG,而不是例如在编译时通过typedef选择RNG。是否有一个基类T使得类似下面的事情成为可能;或者,如果不是,为什么不这样做的明显原因?#includeintmain(){unsignedcharrng_choice=0;T*rng_ptr;//base_classpointercanpointtoanyRNGfromboost::randomswitch(rng_choice){case0:rng_ptr=

c++ - thread::get_id (C++11) 是免费的吗?

我想测试调用我的一个类的不同函数的线程。我有一个关键时间线程,我不希望任何人调用一个可能调用new的函数,以便从该线程调用。但是,由于这2个函数是公共(public)的,我无法通过语言强制执行。我的想法是测试线程id。假设我可以确保初始化线程ID的调用在正确的线程中,我只需要在其他调用中调用thread::get_id()并与我保存的线程ID进行比较。问题是我也想在关键线程中测试这个ID,但我不能锁定那个线程。因此我的问题是:thread::get_id()是否没有锁定(最糟糕的执行时间是什么时候)? 最佳答案 标准不保证threa

c++ - Boost Spirit 报错

我的解析器语法底部有以下错误处理程序:qi::on_error(launch,std::cerr(spirit::_3,spirit::_2)问题是解析器的输入没有事先被新行打断,因此生成的错误语句将是源代码中从错误点到结尾的所有行。有没有直接的替代方法phoenix::construct(spirit::_3,spirit::_2)只打印发生错误的那一行?如果我尝试只搜索'\n',Phoenix语义给我带来了麻烦。 最佳答案 我们需要创建一个可以接受Spirit参数的Phoenix函数。//lazyfunctionforerror

RT-Thread 软件包-软件包分类-IoT-WebTerminal①

RT-Thread软件包-软件包分类-IoT-WebTerminal①RT-Thread软件包-软件包分类-IoT-WebTerminal①WebTerminal让你的终端在浏览器上跑起来1、WebTerminal是什么2、依赖信息3、如何使用3.1初始化3.2启动3.3传送资源文件3.4使用WebFinsh示例代码维护人:RT-Thread软件包-软件包分类-IoT-WebTerminal①WebTerminal让你的终端在浏览器上跑起来1、WebTerminal是什么WebTerminal是一款针对RT-ThreadRTOS的库。启动后,可以通过网页访问设备的控制台(命令行)系统,实现设备

c++ - 在 boost::spirit::qi 中,是否可以在运行时动态修改规则定义

我用boost::spirit::qi::rule写了一些语法来解析互联网数据包。语法是这样的:qi::rulestart,request,response,status,query;start=(request|response|status|query)>>lit("\r\n");为了boost性能,用户可能希望在运行时跳过一些规则,例如忽略“response”、“status”、“query”,只尝试匹配请求,因此规则将更改为:start=(request)>>lit("\r\n");这有可能吗?例如,是否有像“disable()”这样的函数来禁用规则“re​​sponse”、“

c++ - boost fusion 和 boost qi - 编译时错误

我无法编译以下代码:#include#include#includestructfunction{std::stringret_type;std::stringname;};BOOST_FUSION_ADAPT_STRUCT(function,(std::string,ret_type)(std::string,name))intmain(){}带有boost1.54的MSVC-11.0给我以下错误:1>main.cpp(6084):errorC3203:'function':unspecializedclasstemplatecan'tbeusedasatemplateargumen

c++ - 使用 make_shared<std::thread> 创建 shared_ptr<std::thread> 的实例

考虑以下代码:classA{....shared_ptrmThread;voidStep();voidLaunchTrhead();}voidA::LaunchThread(){...mThread=make_shared(Step);//Thislinegivesanerror...}voidA::Step(){...}我正在尝试初始化共享指针mThread以便它调用函数Step。但是,编译器给我错误“类型引用的无效初始化...来自类型‘未解析的重载函数类型’的表达式”。显然我在做一些愚蠢的事情,但我不能指责它。有人可以帮忙吗?提前致谢! 最佳答案

c++ - 使用 boost::asio 连接到 HTTPS 服务器

我想使用boost::asio连接到HTTPS服务器。我成功地与服务器握手,但我就是无法让服务器响应我的POST请求。这是相关代码(我省略了调试和try-catch以节省一些空间):HTTPSClient::HTTPSClient(){ssl::contextcontext(ssl::context::sslv23);context.set_verify_mode(ssl::verify_peer);context.set_default_verify_paths();context.load_verify_file("certificate.pem");mSSLSocket=news

c++ - Boost::tokenizer 点分开,但也保留空字段

我看过thisquestion和我的很像,但是又不一样,所以请不要标为重复。我的问题是:如何从字符串中获取空字段?我有一个类似std::strings="This.is..a.test";的字符串我想获得字段.我也试过typedefboost::char_separatorChSep;typedefboost::tokenizerTknChSep;ChSepsep(".",".",boost::keep_empty_tokens);TknChSeptok(s,sep);for(TknChSep::iteratorbeg=tok.begin();beg!=tok.end();++beg)

c++ - 如何丢弃使用 boost::asio 发送的数据?

我正在编写一些使用boost::asio类读取和写入串行设备的代码。但是,在程序之间发送多个字符串时,我注意到在接收程序上,数据是按照写入串口的顺序读取的,而不是数据从另一个程序发送的顺序——如果我开始阅读数据几秒钟后,我没有得到我现在发送的值,而是以前发送的值。我假设这是由我设置boost::asio::serial_port的方式引起的:intmain(intargc,charconst*argv[]){intbaud=atoi(argv[1]);std::stringpty=argv[2];printf("Virtualdevice:%s\n",pty.data());print