草庐IT

ZN5boost

全部标签

c++ - boost 源代码

有没有办法获得boost库的源代码?我浏览了SVN存储库,但只能看到HPP文件。那里没有可用的源文件。我想查看“shared_ptr”的源代码。谁能指导我?我还可以从哪里下载BCP效用? 最佳答案 绝大部分源代码都在头文件中——为了模板的工作,它必须如此。您不能将模板代码放在源文件中并单独编译它们。 关于c++-boost源代码,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/43

c++ - 有什么有效的方法可以动态更改 boost 中的 compress_matrix 吗?

我正在使用ublas::CompressedMatrix与UMFPACK(一种稀疏线性求解器)一起工作。因为我在做模拟,所以每次线性系统的构造都略有不同,可能涉及扩大/缩小系数矩阵和一些稀疏矩阵乘法。线性系统的规模在25k左右。即使有boost与UMFPACK一起工作的绑定(bind)补丁,我仍然需要不时更改矩阵,有时甚至计算非零值的数量也会很耗时(理想情况下,我必须初始化矩阵时给出非零值的数量)。此外,我使用ublas::range动态追加列/行。所以我的问题是:有什么有效的方法可以做到这一点吗?现在对我来说太慢了。转置一个维度为15k的矩阵花费将近6s并且附加大约12k行很快(因为

c++ - Boost 绑定(bind)占位符参数等于 Variadic 模板参数的数量

我想知道是否可以使用传递给可变参数模板的参数数量作为boost::bind调用中的占位符。像这样:templateboost::bind(&function,this,anArg,_1));//IfArgscountequals1boost::bind(&function,this,anArg,_1,_2));//IfArgscountequals2boost::bind(&function,this,anArg,_1,_2,_3));//IfArgscountequals3这可能吗?谢谢 最佳答案 肯定有一种偏特化的方法。你的va

c++ - 如何在运行时指定 boost multi_array 的退化维度?

我有一个3Dmulti_array,我想使用运行时指定的尺寸制作2D切片。我知道退化维度的索引和我想在该退化维度中提取的切片的索引。目前丑陋的解决方法是这样的:if(0==degenerate_dimension){Sliceslice=input_array[boost::indices[slice_index][range()][range()]];}elseif(1==degenerate_dimension){Sliceslice=input_array[boost::indices[range()][slice_index][range()]];}elseif(2==dege

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