草庐IT

ZN5boost

全部标签

c++ - boost::program_options :迭代并打印所有选项

我最近开始使用boost::program_options并发现它非常方便。也就是说,缺少一件事我无法以一种好的方式编写自己的代码:我想遍历boost::program_options::variables_map中收集的所有选项将它们输出到屏幕上。这应该成为一个方便的函数,我可以简单地调用它来列出所有设置的选项,而无需在添加新选项或每个程序时更新函数。我知道我可以检查和输出单个选项,但如上所述,这应该成为一个忽略实际选项的通用解决方案。我进一步知道我可以遍历variables_map的内容因为它只是一个扩展的std::map.然后我可以检查存储的boost::any中包含的类型。变量

c++ - Boost Thread 的 boost::unique_lock 是作用域锁吗?

我了解由boost::mutex::scoped_lock锁定的变量在超出范围时会自动解锁。boost::unique_lock怎么样,变量超出范围时会自动解锁吗?任何人也可以指出该功能的引用。doublex;boost::mutexx_mutex;voidfoo(){{boost::unique_locklock(x_mutex);x=rand();}......somecalculationwhichtakes10second............isxstilllockedhere???......}谢谢。 最佳答案 sco

C++ boost asio Windows 文件句柄 a​​sync_read_until 无限循环 - 没有 eof

我在VS2010中使用boost1.50,使用Windows文件HANDLE进行读取(与使用套接字的asio相比,这似乎相对不常见)。问题Thehandle_readcallbackgetstoline8andreturnsthefirstbitwithallofline1appended;furthercallbackscyclethroughfromline2again,adnauseum:打开一个简短的文本文件(如下)获得预期的handle_read回调,第1行到第7行内容正确下一个回调有一个比预期更长的字节读取length参数虽然不使用length,但getline会从asio

c++ - boost 等效于 ManualResetEvent?

我想知道是否有相当于ManualResetEvent的boost?基本上,我想要一个跨平台的实现......或者,有人可以帮助我使用Boost::thread模仿ManualResetEvent的功能吗?谢谢大家 最佳答案 当您有互斥锁和条件变量时,编写手动重置事件非常容易。您将需要一个表示您的重置事件是否已发出信号的字段。对字段的访问需要由互斥锁保护-这包括设置/重置您的事件以及检查它是否已发出信号。当您等待您的事件时,如果它当前没有发出信号,您将希望等待一个条件变量,直到它发出信号。最后,在设置事件的代码中,您需要通知条件变量以

C++ - boost::any 序列化

据我了解,boost::any占位符不支持序列化(实际上是boost::serialization)。有人知道是否有办法序列化自定义boost::any实体吗?这里的问题很明显:boost::any使用基于模板的占位符来存储对象和typeid来检查boost::any_cast合适。所以,有一个自定义的抽象父类(superclass)placeholder和自定义的基于模板的派生类,它们的创建方式如下:templatecustom_placeholder:publicplaceholder{virtualstd::type_infotype()const{returntypeid(T)

c++ - boost::asio::io_service 是否保留处理程序的顺序?

是否boost::asio::io_service保证处理程序的调用顺序与通过post()给出的顺序相同?我在文档中找不到任何这样的说法。假设对io_service::post的调用是序列化的。 最佳答案 afaik如果你想保证post处理程序执行的顺序,你必须使用strandasdescribedinthedocs. 关于c++-boost::asio::io_service是否保留处理程序的顺序?,我们在StackOverflow上找到一个类似的问题: h

c++ - 带有 Boost 的 Cuda

我目前正在编写一个CUDA应用程序并想使用boost::program_options库来获取所需的参数和用户输入。我遇到的问题是NVCC无法处理编译boost文件any.hpp给出的错误,例如1>C:\boost_1_47_0\boost/any.hpp(68):errorC3857:'boost::any':multipletemplateparameterlistsarenotallowed我在网上搜索发现是因为NVCCcannothandlethecertainconstructsusedintheboostcode但是NVCC应该将主机代码的编译委托(delegate)给C+

c++ - boost 变换迭代器和 c++11 lambda

我正在尝试通过向适配器提供c++0xlambda来使用boost::adaptors::transformed。以下代码无法编译。我正在使用带有boost1.48的g++4.6.2。#include#include#include#includeusingnamespacestd;namespacebr=boost::range;namespacebadpt=boost::adaptors;intmain(){vectora={0,3,1,};vectorb={100,200,300,400};automy_ftor=[&b](intr)->int{returnb[r];};cout关

c++ - boost::geometry: 使用圆的最近邻

我正在使用Rtreeboost::geometry的实现以存储(大量)2D点。现在我需要进行基于距离的最近邻查询。但是,手册onlydescribesqueries作为矩形框(即“获取此矩形内的所有点”)或“KNN”查询(“从此处获取最近的'n'个点)。我想要的实际上是“给我一组距离小于'n'的点”。我注意到您可以定义一元谓词,但is...一元(因此,不适合两点的条件)。手册文档一些model::ring起初我认为可能适合圆形的类,但实际上它更像是一种分段线(多边形)。这个假设正确吗?还有其他方法来处理这样的查询吗?还是根本不可能? 最佳答案

c++ - boost::program_options 错误或功能?

非常简单的例子:#include#includenamespacepo=boost::program_options;intmain(intargc,char*argv[]){po::options_descriptionrecipients("Recipient(s)");recipients.add_options()("csv",po::value(),"")("csv_name",po::value(),"");po::options_descriptioncmdline_options;cmdline_options.add(recipients);po::variables