boost相关内容

创建 linux make/build 文件

我正在将一个 C++ 项目从 Windows 迁移到 Linux,现在我需要创建一个构建/制作文件.我以前从未创建过构建/制作文件.我还需要包含 Boost 库以使其更复杂.它也必须是一个生成文件,无论如何我都需要学习如何创建生成文件,所以 CMake 和 SCON 被淘汰了.IDE 也因为使用 Boost 而过时了,我所有的 IDE(Eclipse、VS 等)都只在 Windows 上运行.我必 ..
发布时间:2021-12-24 15:45:28 服务器开发

boost::asio::socket 线程安全

(这是我原来问题的简化版) 我有几个线程可以写入 boost asio 套接字.这似乎工作得很好,没有问题. 文档说共享套接字不是线程安全的( 这里,在底部)所以我想知道我是否应该用互斥锁或其他东西保护套接字. 这个问题 坚持认为保护是必要的,但没有给出如何保护的建议. 我原来的问题的所有答案都坚持认为我在做的事情很危险,并且大多数人都敦促我用 async_writes 甚 ..
发布时间:2021-12-24 15:45:13 C/C++开发

C++11 是否有动态分配数组的包装器,比如 Boost 的 scoped_array?

我经常需要在 C++ 中处理动态分配的数组,因此依赖 Boost 来处理 scoped_array、shared_array 等.通读 Stroustrup 的 C++11 FAQ 和 C++11 参考 Wiki,我找不到 C++11 提供的这些动态数组包装器的合适替代品标准.有什么我忽略的地方,还是我必须继续依赖 Boost? 解决方案 unique_ptr 有一个特化,比如 uniqu ..
发布时间:2021-12-24 15:45:09 其他开发

如何以及为什么要使用 Boost 信号 2?

学习c++并尝试熟悉一些模式.signals2 doc 显然有大量我可以用插槽和信号做的一系列事情.我不明白的是我应该将它用于哪些类型的应用程序(用例). 我在思考状态机调度更改事件的思路.来自动态类型的背景(C#、Java 等),您将使用事件调度程序或静态引用或回调. 在 C++ 中使用跨类回调有困难吗?这基本上是为什么signals2 存在的原因吗? 示例案例之一是文档/视图 ..
发布时间:2021-12-24 15:44:57 C/C++开发

您对 shared_ptr 进行 typedef 的约定是什么?

我正在为 boost::shared_ptr 模板转换 typedef 的命名约定.例如: typedef boost::shared_ptrFooPtr; 在确定约定之前,我想看看其他人使用什么.你的约定是什么? 编辑: 对于那些将 typedef 嵌套在 Foo 中的人来说,Foo 现在“知道"了,难道你不会感到困扰吗?它将如何传递?它似乎打破了封装.这个怎么样: class ..
发布时间:2021-12-24 15:44:44 C/C++开发

如何连接 Boost 序列化 &iostreams 序列化 &gzip 一个对象到字符串?

我一直在使用 Boost 序列化库,它实际上非常好,让我可以制作简单的包装器来将我的可序列化对象保存为字符串,如下所示: namespace bar = boost::archive;命名空间 bio = boost::iostreams;模板内联 std::string saveString(const T & o) {std::ostringstream oss;bar::binary_oa ..

使用 make_shared 创建 shared_ptr 有什么缺点吗

使用 make_shared() 代替 shared_ptr(new T) 有什么缺点吗. Boost 文档 声明 有来自的重复请求工厂函数的用户创建一个给定类型的对象并返回一个 shared_ptr 给它.除了方便又时尚,这样的功能也是异常安全的相当快,因为​​它可以使用两者的单一分配对象及其对应的控件块,消除了一个重要的shared_ptr 的部分构造高架.这消除了其中之一主要效率 ..
发布时间:2021-12-24 15:44:30 C/C++开发

构建 Boost BCP

过去两个小时我一直在尝试构建 Boost C++ 库,但停止了没有任何结果.由于我是 C++ 的新手,因此无法正确构建.如何使用 Visual Studio 2008 正确构建它? 我需要使用 BCP 工具来提取库的子集.所以我需要先建立BCP,对吗?这个怎么做?当我尝试构建它时,出现以下错误 致命错误 LNK1104:无法打开文件“libboost_filesystem-vc90-m ..
发布时间:2021-12-24 15:44:26 C/C++开发

带有 boost::shared_ptr 的 NULL 指针?

什么是等价于以下内容: std::vectorvec;vec.push_back(NULL); 什么时候处理boost::shared_ptr?是下面的代码吗? std::vector>vec;vec.push_back(boost::shared_ptr()); 注意:我可能会推回很多这样的对象.我应该在某处声明一个全局静态 nullPtr 对象吗?这样就只需要构建其中一个: boos ..
发布时间:2021-12-24 15:44:22 C/C++开发

什么是 std::pair?

std::pair 有什么用,我为什么要使用它,boost::compressed_pa​​ir 有什么好处? 解决方案 std::pair 是一种将两个值组合为一个对象的数据类型.std::map 将其用作密钥,值对. 在您学习时pair,您可以查看 tuple.它就像 pair ,但用于对任意数量的值进行分组.tuple 是 TR1 的一部分,许多编译器已经将它包含在他们的标准库 ..
发布时间:2021-12-24 15:44:12 C/C++开发

如何使用boost正态分布类?

我正在尝试使用 boost::normal_distribution 来生成均值为 0 和 sigma 1 的正态分布. 以下代码不起作用,因为某些值超过或超过 -1 和 1(并且不应该).有人能指出我做错了什么吗? #include #include int main(){提升:: mt19937 rng;//我不是故意播种的(这无关紧要)boost::normal_distributi ..
发布时间:2021-12-24 15:43:58 C/C++开发

Boost 库 - 只构建我需要的

我下载了 Boost 库,现在我只想构建几个库.什么是正确的命令?显然,built-type=complete 选项给了我太多.我使用的是 Windows XP,想使用 Bjam 编译 Boost 和 MinGW 以最终使用它.目前我认为我需要 Boost.filesystem、Boost.ProgramOptions 和 Boost.System 库.另一个问题:我应该把头文件库放在哪里? ..
发布时间:2021-12-24 15:43:54 C/C++开发

使用 Boost.Lockfree 队列比使用互斥锁慢

直到现在我在我的项目中使用 std::queue.我测量了此队列上的特定操作所需的平均时间. 时间是在 2 台机器上测量的:我的本地 Ubuntu VM 和远程服务器.使用 std::queue,两台机器上的平均值几乎相同:~750 微秒. 然后我将std::queue“升级"到boost::lockfree::spsc_queue,这样我就可以摆脱保护队列的互斥锁.在我的本地 VM ..
发布时间:2021-12-24 15:43:48 C/C++开发

boost::unique_lock 与 boost::lock_guard

我不太明白这两个锁类之间的区别.在 boost 文档中说,boost::unique_lock 不会自动实现锁定. 这是否意味着 unique_lock 和 lock_guard 之间的主要区别在于使用 unique_lock 我们必须显式调用 lock() 函数? 解决方案 先回答你的问题.不,您不需要在 unique_lock 上调用锁.见下图: unique_lock 只 ..
发布时间:2021-12-24 15:43:41 C/C++开发

使用 C++ Boost 的图形库

我对如何使用 boost 库实际创建图形感到困惑,我查看了示例代码,但没有解释它的作用的注释. 如何制作图形,并随手添加顶点和边? 解决方案 这是一个简单的例子,使用邻接表并执行拓扑排序: #include #include #include #include "boost/graph/adjacency_list.hpp"#include "boost/graph/ ..
发布时间:2021-12-24 15:43:37 C/C++开发

混合 Qt 和 Boost

我正在考虑使用 Qt 4 框架(需要跨平台 GUI)在 C++ 中启动一个项目.我从朋友和网上听说过关于 Boost 库的好消息.我已经开始阅读两者,并想在深入了解之前提出一个粗略的问题:这两个开发“系统"是否相互排斥? 我最初的搜索和阅读显示信号处理、自定义构建系统和其他低级原语存在一些重叠. 在同一个项目中使用它们是否有意义? 解决方案 是的,这很有意义.我通常更喜欢在可能 ..
发布时间:2021-12-24 15:43:23 C/C++开发