草庐IT

boost-pool

全部标签

c++ - 帮助编译和使用boost c++库

我正在开发一个C++项目,我想在其中使用boost的序列化库。我从boost的主页下载并安装了最新的boost库。当我尝试编译和运行boost的演示序列化示例之一时,我遇到了如下所示的各种错误:/usr/local/include/boost/archive/detail/iserializer.hpp:173:undefinedreferenceto`boost::archive::archive_exception::~archive_exception()'./demo.o:Infunction`voidboost::archive::detail::save_non_point

c++ - 如何在 boost 中获取当前的 UTC 日期?

鉴于这是一个基本问题,我想可能会有重复的问题,但我找不到任何问题。我只是想从boost获取当前的iso_date(比如20110503)。有什么建议吗? 最佳答案 我假设您正在寻找Boost.Date_Time基于解决方案?#include#include#include#include#includestd::stringutc_date(){namespacebg=boost::gregorian;staticcharconst*constfmt="%Y%m%d";std::ostringstreamss;//assumesst

c++ - 在 Boost 的多索引容器中获取非常量迭代器

使用Boost1_33_1,我得到一个错误,暗示我的迭代器是一个const迭代器(因为它不会让我取消引用find()的结果)。$g++bmi_iter_tst.cppbmi_iter_tst.cpp:Infunction‘voidtst(employee_set&)’:bmi_iter_tst.cpp:32:error:invalidinitializationofreferenceoftype‘employee&’fromexpressionoftype‘constemployee’我知道我不应该修改任何键值,我也没有,但我仍然需要非常量访问来修改容器元素中的其他数据。我知道我已经在

c++ - 类型转换 boost::units::quantity 加倍

我需要将数量的值传递给库进行评估。boostunitslibrary在SI中采用双倍值,因此boost单位库在确保该要求方面非常有吸引力。但是,我应该如何将数量转换为双倍值?文档和示例似乎避免了这种情况,因为这样做的目的是维护单位。类似于:quantityp(101.1*kilo*pascals);doubledblP=static_cast(p);//doublevalueinPascals浏览header表明...这是转换为基本类型的正确方法吗?p.value(); 最佳答案 我想你要找的是这个:quantityp(101.1*

c++ - 如何将 boost::any_cast 转换为 std::string

我有这个测试片段#include#include#include#include#includeclasswrapper{intvalue;charcharacter;std::stringstr;public:wrapper(inti,charc,std::strings){value=i;character=c;str=s;}voidget_data(){std::coutcontainer;container.push_back(10);container.push_back(1.4);container.push_back("Mayukh");container.push_ba

c++ - boost 共享指针 : Simultaneous Read Access Across Multiple Threads

我有一个线程A,它分配内存并将其分配给一个共享指针。然后该线程生成另外3个线程X、Y和Z,并将共享指针的拷贝传递给每个线程。当X、Y和Z超出范围时,内存将被释放。但是是否有可能2个线程X、Y在完全相同的时间点超出范围并且引用计数存在竞争条件,因此它不会将其递减2,而只会递减一次。所以,现在引用计数newer下降到0,所以存在内存泄漏。请注意,X、Y和Z仅读取内存。不写入或重置共享指针。长话短说,引用计数是否存在竞争条件,这会导致内存泄漏吗? 最佳答案 boost::shared_ptr使用锁(或无锁原子访问)来确保引用计数以原子方式

c++ - 使用 Boost Asio 从串行端口读取

我想使用boost.asio检查串行端口上的传入数据包。每个数据包都以一个字节长的报头开头,并指定所发送消息的类型。每种不同类型的消息都有自己的长度。我要编写的函数应该不断地监听新传入的消息,当它找到一个消息时应该读取它,并调用其他函数来解析它。我目前的代码如下:voidcheck_for_incoming_messages(){boost::asio::streambufresponse;boost::system::error_codeerror;std::strings1,s2;if(boost::asio::read(port,response,boost::asio::tra

c++ - 使用指定 ip 和端口的 boost asio 创建 iostream

我有一个关于boostasio库的问题。我成功地尝试在客户端和服务器之间创建套接字,这涉及创建解析器以指定服务器的ip和端口(服务器只需要端口)和其他对象,但最重要的是,有必要使用write和read_some作为从/在套接字中读取和写入的函数。我真的很感激使用流,这在boostasio中是可能的,但这很奇怪......在几乎所有使用流的示例中,要创建服务器就必须提供端口,好吧,让我们谈谈客户端...客户端,需要使用iostream构造函数指定用于连接流的坐标,这是代码:tcp::iostream()s(argv[1],"daytime");好吧,我真的不明白第一个参数传递的是什么,也

c++ - Boost.Program_options 没有参数默认行为?

我正在使用Boost::Program_options来解析我的命令行,并改编了教程中的一些代码,如下所示:try{po::options_descriptiondesc("Allowedoptions");desc.add_options()("help,h","outputhelpmessage")("width,w",po::value()->required(),"width");po::positional_options_descriptionp;p.add("width",1);po::variables_mapvm;po::store(po::command_line_

c++ - boost 是否有可移植的方式来使用 ntohl/htonl/ntohs/htons 类型的函数?

如果有帮助,我正在使用UDP,尤其是boost::asio::ip::udp::socket套接字?什么是头文件?我需要哪些header/类来处理boost下UDP的网络字节排序? 最佳答案 刚刚发现足够#include因为这会拉入所有依赖于平台的header并提供对htonl/ntohl的访问权限这正是我所需要的。感谢大家的建议。 关于c++-boost是否有可移植的方式来使用ntohl/htonl/ntohs/htons类型的函数?,我们在StackOverflow上找到一个类似的问