草庐IT

ZN5boost

全部标签

c++ - boost::property_tree::xml_writer_settings 编译错误

为了漂亮地打印我的XML输出boost::property_tree,我写了下面的代码:#include#includeintmain(){std::stringfilename="test.xml";boost::property_tree::ptreept;pt.put("some.path.value","hello");boost::property_tree::xml_writer_settingssettings('\t',1);write_xml(filename,pt,settings);}不幸的是我有这个错误,我找不到任何相关信息:/usr/local/include

c++ - 如何从本地套接字创建 Boost.Asio 套接字?

我只是想从现有的native套接字创建一个boostip::tcp::socket。在assignfunction,第一个参数必须是“protocol_type”,第二个必须是“native_type”,但它从未解释这些是什么或给出其使用示例。我猜第二个应该是套接字描述符,但我非常感谢您的澄清。voidSendData(intsocket,std::stringmessage){boost::asio::io_serviceioserv;boost::asio::ip::tcp::sockets(ioserv);s.assign(/*whatgoeshere?*/,/*..andher

c++ - 两个日期之间的月数 - 使用 boost 的日期

我现在使用了一些boost::gregorian::date。我可以看到有相关的月、年和周持续时间类型。我可以看到如何使用已知的持续时间来提前给定的日期。曲:但是我怎样才能得到两个日期之间的月(或年或周)差异呢?我希望找到这样的函数:templateDURATIONdate_diff(constdate&d1,constdate&d2);还需要对舍入进行一些处理。此函数将返回d1和d2之间的(比如说)整月数。 最佳答案 您是指日期之间的差异(09/12-08/05=01/07=19个月)还是时间差异((date2_seconds-d

c++ - 如何使 boost unordered_map 支持 flyweight<string>

我正在尝试执行以下操作:boost::unordered_map,boost::flyweight>map;boost::flyweightfoo(name);map[foo]=foo;但是编译器提示:“错误C2665:‘boost::hash_value’:17个重载中没有一个可以转换所有参数类型”。但是我定义了如下函数:std::size_thash_value(constboost::flyweight&b){boost::hashhasher;conststd::string&str=b.get();returnhasher(str);}booloperator==(const

c++ - 在 boost::asio 中一起接受 IPv4 和 IPv6

简短而简单的问题:我是boost::asio的新手,我想知道是否可以创建一个tcp::acceptor监听两者,IPv4和IPv6连接在一起。boost主页上的教程是这样的:_acceptor=newtcp::acceptor(_ioService,tcp::endpoint(tcp::v4(),3456));端点总是用特定的协议(protocol)指定。难道不能在同一个端口上同时监听IPv4和IPv6吗? 最佳答案 如果你创建一个IPv6接受器,它会同时接受IPv4和IPv6连接如果IPV6_V6ONLY套接字选项被清除。IPv4

c++ - 为什么我应该使用 Apache C++ 标准库而不是任何其他 STL 实现以及 Boost?

我从ApacheC++standardlibrary中得到什么好处?我不是从编译器和Boost库附带的STL实现中得到的? 最佳答案 TheApacheC++StandardLibraryprojectisacompleteimplementationoftheISO/IEC14882C++StandardLibrary.ThemostdistinguishingcharacteristicofthisimplementationoftheC++StandardLibraryisitsportabilitytoalargenumbe

c++ - 限制 std::cout 中 boost::options_description 中默认值的精度

当我构建一个boost::options_description实例时options.add_options()("double_val",value(&config.my_double)->default_value(0.2),"it'sadouble");然后想自动输出可用于我的程序的选项,然后把std::cout默认值0.2显示的精度太高,当我有长变量名时,这会有效地扰乱我的输出:--double_val(=0.20000000000000001)it'sadouble不幸的是,之前对std::cout.precision的调用没有帮助:cout.precision(5);std

c++ - Boost.Asio 中的异常处理

Boost.Asio文档suggeststhefollowingexceptionhandlingpattern:boost::asio::io_serviceio_service;...for(;;){try{io_service.run();break;//run()exitednormally}catch(my_exception&e){//Dealwithexceptionasappropriate.}}它的问题是异常的上下文在处理时丢失了。例如,如果我在给定的io_service中有多个套接字session,我不知道是哪个导致了异常。如果不将异步处理程序的异常包装在try/c

c++ - 类构造函数上 boost::shared_ptr 的默认值

假设我有这样的类classA{public:A(inta,boost::shared_ptrptr){//whatever!}};我的问题是,该ptr的默认值是多少?我希望能够使用创建该类的实例AmyA(5);当然我知道我可以用一个参数创建另一个构造函数,但我正在寻找类似的东西A(inta,boost::shared_ptrptr=WAT?)这可能吗?目前我使用的是双构造函数方式,但这样做会很棒。 最佳答案 #includeA(inta,boost::shared_ptrptr=boost::make_shared())检查http

c++ - 如何使用 Boost 创建临界区?

对于我的跨平台应用程序,我已经开始使用Boost,但我无法理解如何实现代码来重现Win32的临界区或.Net的lock的行为。我想写一个方法Foo可以从不同的线程调用来控制对共享字段的写操作。应允许同一线程内的递归调用(Foo()->Foo())。在C#中这个实现非常简单:object_synch=newobject();voidFoo(){lock(_synch)//onethreadcan'tbelockbyhimself,butanotherthreadsmustwaituntill{//dosomeworksif(...){Foo();}}} 最佳答