草庐IT

ZN5boost

全部标签

c++ - 使用 boost::singleton_pool 时处理 std::string/std::vector 成员变量

我正在编写一个性能关键型应用程序,我在其中创建了大量类似类型的对象来下订单。我正在使用boost::singleton_pool用于分配内存。最后我的类看起来像这样。classMyOrder{std::vectorv1_;std::vectorv2_;std::strings1_;std::strings2_;public:MyOrder(conststd::string&s1,conststd::string&s2):s1_(s1),s2_(s2){}~MyOrder(){}staticvoid*operatornew(size_tsize);staticvoidoperatorde

C++/Boost MPL : structure code likewise Haskell's let, 其中,

由于C++元编程是函数式的:是否有任何方法可以与任何函数式编程语言(例如Haskell的)的let或where构造相媲美?我正在使用Boost::MPL,但希望为更长的元函数提供更多结构。拆分成几个函数很好,但在某些情况下我更喜欢let/where。 最佳答案 MPL本身不支持let子句,但一些构建在它之上的库支持。一个例子是metamonad.顾名思义,它还支持其他一些更高级别的功能概念(monad)。一个很大的缺点是,metamonad不是Boost发行版的官方部分。就MPL的变通方案而言,将事物拆分为函数并使用更多命名空间对它

c++ - 使用 Boost Asio 设置帖子队列大小限制?

我正在使用boost::asio::io_service作为基本线程池。一些线程被添加到io_service,主线程开始发布处理程序,工作线程开始运行处理程序,一切都结束了。到目前为止,一切都很好;与单线程代码相比,我获得了不错的加速。但是,主线程有数百万的东西要发布。它只是不断地发布它们,比工作线程处理它们的速度快得多。我没有达到RAM限制,但将这么多东西排入队列仍然有点愚蠢。我想要做的是为处理程序队列设置一个固定大小,并在队列已满时阻止post()。我在BoostASIO文档中没有看到任何选项。这可能吗? 最佳答案 我正在使用信

c++ - Boost C++ 库是否支持 Sparc 上的 Solaris?

我一直在研究用于开发跨平台网络服务器库的Boost库。它应该在Windows/Linux/Solaris上使用。boost支持这三种吗?我唯一能通过谷歌搜索找到的是一些构建问题和“Boost支持大多数现代操作系统”我对Boost很陌生,所以也许更习惯它的人知道在哪里更具体地指定了它? 最佳答案 在所有boost版本中都有版本支持此版本。查找示例here 关于c++-BoostC++库是否支持Sparc上的Solaris?,我们在StackOverflow上找到一个类似的问题:

c++ - 如何在 "two dimensional manner"中使用 boost::variant 定义异构 std::map

我很乐意得到并建议如何以“二维方式”处理boost::variant。听起来很奇怪,但让我的代码说得更多(希望如此):我编写了一个名为Parameter的类:templateclassParameter:publicquantity{...}上面定义的我的参数的示例用法:ParameterSampleParameter1;ParameterSampleParameter2;正如我试图通过上面的示例解释的那样,我可以使用boost::units::si::???和不同的数据类型(如double,short)定义多个参数类型,int等我的目标是构建一个std::map容器,它可以存储任何P

c++ - Boost Program Options 依赖选项

有没有办法使用boost::program_options使程序选项依赖于其他选项?例如,我的程序可以接受以下示例参数:wifi--scan--interface=en0wifi--scan--interface=en0--ssid=networkwifi--do_something_else在此示例中,interface和ssid参数仅在它们伴随有scan时才有效。它们依赖于scan参数。有什么方法可以使用boost::program_options自动执行此操作?它当然可以手动实现,但似乎必须有更好的方法。 最佳答案 您可以定义

c++ - `boost::any` 和 `std::any` 之间的差异

C++17引入了对象容器std::any,基于boost库boost::any.我的问题是:标准化的any是否等同于boost版本,或者是否存在差异?Asimilarquestionhasbeenpostedaboutvariant,在这种情况下存在一些差异,但我找不到关于any的引用。编辑:我能看到的一个区别是方法emplace的可用性。我对行为和保证之间的差异感兴趣的不仅仅是API的差异。例如,不同的分配对我来说很重要。 最佳答案 I'minterestedtothedifferencesbetweenthebehavioran

c++ - 在析构函数中加入一个 boost::thread 实例

我看到一个问题,即调用boost的线程->加入析构函数会导致死锁。我不明白为什么,而且我不太热衷于在项目中保留正常工作的代码(我不明白为什么会这样)。类声明(为简洁起见,我删除了try/catch的run()方法:根据boost线程文档,使用或不使用它的结果应该相同):classB{public:voidoperator()(){run();}voidrun();voidshutdown();~B();B();boost::thread*thr;boolshutdown_requested;};voidB::shutdown(){shutdown_requested=true;if(t

c++ - 我在哪里可以找到用 : boost + protobuf 实现的 RPC

是否有通过boost+protobuf实现的任何RPC框架?并且它有一个protobuf插件可以用来为框架生成RPC代码。或者有一些开源的实现可以引用,请告诉我。谢谢。 最佳答案 最近通过一个SO找到question有一个:RCF(远程调用框架)它似乎可以使用boost.asio和protocolbuffers。我自己没有用过。我的2c 关于c++-我在哪里可以找到用:boost+protobuf实现的RPC,我们在StackOverflow上找到一个类似的问题:

c++ - boost::thread 在终止时会自动从 boost::thread_group 中删除吗?

(Thisquestion,虽然相似,但并没有真正回答我的问题。)我有problemswithmyown"threadgroup"implementation,并且没有更接近于解决甚至识别问题,我正在研究仅使用boost::thread_grp。现在,从什么documentationIcanfindonthesubject1,我一直相信线程对象——无论它们实际工作的持续时间如何——一直存在并且是线程组的一部分,直到线程组被销毁。但是,粗略的测试似乎表明boost::thread_group::size()会随着线程的工作和终止而自行减少。这意味着线程对象本身也正在为我清理。这是真的吗?