草庐IT

boost-pool

全部标签

c++ - 如何返回一个不透明的句柄(void* 或 dword),它可以转换回存储在 boost::interprocess 映射中的值元素?

我对放置一个std::string键和一个大的struct值所涉及的堆和按值与按引用语义有点困惑放入像boost::interprocess::map这样的容器中。这是我的情况,以及我正在使用的一些类型定义:typedefstd::stringAreaKeyType;typedefDATA_AREA_DESCAreaMappedType;//DATA_AREA_DESCisabigstruct.typedefstd::pairAreaValueType;typedefboost::interprocess::allocatorAreaShmemAllocator;typedefboos

c++ - 可以使用 boost::threads 中的 std::this_thread* 函数吗?

混合和匹配来自boost::thread和std::thread的东西是否可以,还是应该为每个使用一组函数?我问是因为我的代码使用了boost::thread,但是我发现boost::this_thread::sleep_for在设置系统时间倒退,但std::this_thread::sleep_for确实如此,所以我想更改我的sleep函数调用并避免将我所有的boost::thread更改为std::thread如果可能的话。 最佳答案 在实践中,当且仅当/因为实现使用相同的实现(例如,Linux上的pthread),您可能会侥幸

c++ - boost::filesystem::path::lexically_normal: 这是不正确的行为吗?

boost::filesystem::path::lexically_normal()的文档指出:Returns*thiswithredundantcurrentdirectory(dot),parentdirectory(dot-dot),anddirectory-separatorelementsremoved.参见:http://www.boost.org/doc/libs/1_63_0/libs/filesystem/doc/reference.html.以下打印./test(使用Boost1.63.0),我希望test:#include#includeintmain(void

c++ - 如何使用 boost::asio 即时更改串行端口速度(或如何确定硬件缓冲区是否为空)?

我在使用boost::asio和boost::asio::serial_port设备时遇到了一个特殊问题。代码终于可以很好地处理异步读取和其他内容,但我不知道如何即时更改串行端口的速度。我现在想做的只是告诉连接到我的串行端口的设备将串行端口速度更改为38400波特,然后我通过以下方式将我的计算机串行端口设置为相同的速度:port_.set_option(boost::asio::serial_port_base::baud_rate(rate));但真正发生的是,如果我执行set_option部分,设备永远不会收到更改速度的命令。如果我不执行set_option部分,设备会正确改变速度

c++ - 如何确保我们从 boost::child 进程中读取所有行

我在boost::child文档页面上看到了以下代码,其中解释了如何读取子进程的输出。http://www.boost.org/doc/libs/1_64_0/doc/html/boost_process/tutorial.html他们说在运行你的子进程后,我们可以通过这个循环读取它:-bp::ipstreamis;//readingpipe-streambp::childc(bp::search_patk("nm"),file,bp::std_out>is);//thenlaterwhile(c.running()&&std::getline(is,line)&&!line.empt

c++ - boost 任何使用

如何将我自己的类对象从boost插入到ptr_map中。这些对象是模板化的,所以我不能在map中使用一些静态类型名称。所以我做了:ptr_mapsomeMap;我的类继承了boost::noncopyable。someMap.insert("Test",newMyClass());错误是:错误:没有匹配函数来调用‘boost::ptr_map。更新:我宁愿制作一些包装器并且不使用boost::any。所以:classIWrapper{};classMyClass:publicIWrapper{};ptr_mapsomeMap;someMap.insert("Test",newMyCla

c++ - boost 压缩矩阵基础知识

我对boost::compressed_matrix的工作原理感到困惑。假设我这样声明compressed_matrix:boost::numeric::ublas::compressed_matrixT(1000,1000,3*1000);这为1000x1000矩阵中的3*1000个元素分配了空间。现在我如何给它指定非零元素的位置?何时以及如何设置非零元素?每次我在矩阵中分配一个元素时,例如B(4,4)=4,它会将那个元素标记为非零?如果可能的话,如果您能通过示例帮助我了解这一点,我将不胜感激。对内部实现有一些了解会很棒。我想确保我不会通过猜测编写出次优的程序。谢谢!

c++ - 理解和使用 Boost Phoenix 库,重点放在惰性求值上

我刚刚发现了BoostPhoenix库(隐藏在Spirit项目中)并且作为函数式编程风格的粉丝(但仍然是一个业余爱好者;对haskell和scheme有一些小经验)我想尝试一下这个库以了解该库的合理应用。除了使用fp-style提高代码的表现力和清晰度外,我还对以低成本加速计算的惰性求值特别感兴趣。一个小而简单的例子如下:存在某种路由问题(如tsp),它使用欧氏距离矩阵。我们假设,距离矩阵的某些值从未使用过,而某些值经常使用(因此每次调用都即时计算它们并不是一个好主意)。现在,拥有一个保存距离值的惰性数据结构似乎是合理的。凤凰怎么可能?(忽略了一个事实,即我根本不需要fp-style-

c++ - 我可以在成员函数上使用 boost::enable_if 吗?

我正在写一个模板类,我想允许一个额外的方法只存在于特定的模板类型中。目前该方法适用于所有模板类型,但会导致所有其他类型的编译错误。复杂的是它是一个重载的operator()。不确定我想做的事情在这里是否真的可行。这是我现在拥有的:templateclassMyClass:publicBASE{public:typenameT&operator()(constUtility1&foo);typenameTconst&operator()(constUtility2&foo)const;};我想要T&版本始终可用,但Tconst&版本仅在Utility2时可用已验证。现在,这两种方法都存在

C++/boost : Writing a more powerful sscanf replacement

我想用C++编写一个函数来替换C的sscanf,它将匹配分配给迭代器。基本上,我想要这样的东西:strings="0.56hello";std::vectorany_vector;sscanv(s,"%f%i%s",any_vector);cout(any_vector[0]);cout(any_vector[2]);具体细节可能有所不同,但您明白了。有什么实现想法吗?到目前为止的选项以及目前的问题:std::istringstream:没有用于匹配常量表达式的操纵器Boost.Regex:不确定这是否行得通,而且看起来比需要的要复杂得多Boost.Spirit:不要认为这适用于动态生