草庐IT

boost-container

全部标签

c++ - 在 Windows VC++ 2010 静态链接下构建 boost + ICU

我现在尝试将近一周的时间在Windows和VC++下构建一个可靠的boost+ICU库作为x86系统下的STATIC库(所以我不需要任何运行时dll)。我主要需要支持Unicode和boost.locale.icu的boost正则表达式。无法在整个网络上找到任何可靠的解决方案(不是在boost站点或ICU上)来执行此操作。尝试使用VC++、Cygwin+VC++进行构建,但到目前为止没有成功。有经验的帮助吗?或者,更糟糕的情况是,任何预构建的ICU静态+boost静态包?在我构建ICUstatic之后,在Cygwin下配置:bashrunConfigureICU--enable-deb

C++ boost::program_options 读取与 getopt_long 兼容的参数

我正在开发现有程序的更新。我正在用boost::program_options替换Posix的getopt_long()。但是我的工作没有按预期进行:我想阅读如下参数:-server=www.example.com-cconfig.txt我尝试了来自boost::program_options::command_line_style的多种可能性,但我找不到可以提供与getopt_long相同的行为的组合。我发现对于参数:-server=www.example.com我需要旗帜:command_line_style::allow_long_disguise|command_line_st

c++ - 正确关闭boost线程

我有x个同时工作的boost线程。一个生产者线程用计算任务填充一个同步队列。消费者线程弹出任务并计算它们。图片来源:https://www.quantnet.com/threads/c-multithreading-in-boost.10028/用户可能会在此过程中完成程序,因此我需要正确关闭我的线程。我目前的方法似乎不起作用,因为会抛出异常。它的目的是在系统关闭时,无论他们做什么,所有进程都应该被杀死并停止他们当前的任务。你能告诉我你将如何杀死这些线程吗?线程初始化:for(inti=0;i线程破坏:voidMyManager::shutdown(){for(inti=0;ijoin

c++ - 已与 boost asio 接受器一起使用的地址

我编写了一个服务器,用于监听传入的TCP连接和连接到它的客户端。当我关闭服务器并在同一端口上重新启动它时,我有时会在调用bind(...)时收到错误消息EADDRINUSE(错误代码:Linux上的98)。即使我设置了重用套接字的选项,也会发生这种情况。该错误并非一直发生,但似乎在客户端连接到服务器并在服务器关闭时发送数据时更常发生。我想问题是服务器关闭时仍然有挂起的连接(相关主题:https://stackoverflow.com/questions/41602/how-to-forcibly-close-a-socket-in-time-wait)。在服务器端,我使用的是boost

c++ - boost:从机器获取带有当前时区的当前 local_date_time

问题是:我知道如何在boost中获取本地时间代码:boost::local_time::local_date_timecurrentTime(boost::posix_time::second_clock::local_time(),boost::local_time::time_zone_ptr());std::cout我知道如何从机器获取当前时区数据(我希望这是正确的方法)代码:tzset();//thevartznamewillhavetimezonenames//thevartimezonewillhavethecurrentoffset//thevardaylightshou

c++ - 从 boost::archive::text_oarchive_impl 和 boost::archive::text_iarchive_impl 派生自定义存档类

注意:Boost的存档方案基于对称的输入和输出存档类。一直写这两者很乏味,所以我将使用?archive来表示oarchive和iarchive。总结:将自定义存档的基类从binary_?archive_impl更改为text_?archive_impl后,当编译器实例化时,我的自定义存档类不再“找到”>serialize(...)我的其他类中的方法。背景:我的应用程序使用binary_?archive_impl的子类成功地读取和写入文件到磁盘(文档和/或代码注释建议这优于从binary_?archive派生)。我需要从二进制文件格式切换到文本格式,因此我将自定义存档的基类切换为text

c++ - 在 Windows 上使用 boost::asio 发送组播性能不佳

我有一个非常简单的boost::asio套接字发送多播消息的包装器://headerclassMulticastSender{public:///Constructor///@paramip-Themulticastaddresstobroadcaston///@paramport-ThemulticastporttobroadcastonMulticastSender(constString&ip,constUInt16port);///Sendsamulticastmessage///@parammsg-Themessagetosend///@paramsize-Thesizeof

c++ - 如何使用 CodeBlocks 安装 Boost 库?

所以我快要结束了;我正在研究保存文件和序列化,结果发现C++不具备Python及其出色的pickle所具有的原生序列化能力。但幸运的是,它有Boost-所以我开始寻求在我的系统上安装Boost1.47,以便能够序列化我的对象。但到目前为止,还没有成功。我首先想到我可以使用这个:http://wiki.codeblocks.org/index.php?title=BoostWindowsQuickRef,但是不断出现版本不匹配的错误,在多次尝试定位兼容1.47的BoostJam后(只找到1.3.19,貌似是为1.46打造的),看到页面一年半多了过时了。然后,经过大量搜索,我被指向这里:h

c++ - 使用 mingw-w64 工具链时,以 Release模式链接的 Regex Boost 库会发出 "duplicate section has different size"警告

在Release模式下链接我的项目时,我收到以下警告:myProject-libs/release/libboost_regex-mt-s-1.50.0.a(cpp_regex_traits.o):duplicatesection`.data$_ZZN5boost16cpp_regex_traitsIcE21get_catalog_name_instEvE6s_name[boost::cpp_regex_traits::get_catalog_name_inst()::s_name]'hasdifferentsize我怀疑原因可能是boost库的编译选项与我在项目中使用的选项不同,但我

C++ boost前向声明问题

我花了一些时间检查boost::库架构并对以下事实感兴趣:在库的某些部分中,yyy_fwd.hpp的想法非常普遍(参见boost/detail或boost/flyweight的示例).这些文件显然只包含一些基于模板的类的前向声明,据我所知,可以在编译时间方面受益。有人可以指出它们在哪些情况下有帮助吗?我应该在设计自己的模板时使用相同的想法吗?谢谢。 最佳答案 需要前向声明来减少编译时依赖性。例如,在实现Pimpl习语时。还有一种情况,比如boost::pool*在Windows平台上依赖于windows.h。在创建我的界面时,我不想