boost相关内容
我正在将一个 C++ 项目从 Windows 迁移到 Linux,现在我需要创建一个构建/制作文件.我以前从未创建过构建/制作文件.我还需要包含 Boost 库以使其更复杂.它也必须是一个生成文件,无论如何我都需要学习如何创建生成文件,所以 CMake 和 SCON 被淘汰了.IDE 也因为使用 Boost 而过时了,我所有的 IDE(Eclipse、VS 等)都只在 Windows 上运行.我必
..
我使用的是 Windows 系统.我想通过 CMake 使用 Boost 库.我已经在 C:\boost_1_55_0\ 上安装了 boost这是我的 CMakeLists.txt 文件 set(Boost_USE_STATIC_LIBS ON)设置(Boost_USE_MULTITHREADED ON)设置(Boost_USE_STATIC_RUNTIME 关闭)find_package(Bo
..
(这是我原来问题的简化版) 我有几个线程可以写入 boost asio 套接字.这似乎工作得很好,没有问题. 文档说共享套接字不是线程安全的( 这里,在底部)所以我想知道我是否应该用互斥锁或其他东西保护套接字. 这个问题 坚持认为保护是必要的,但没有给出如何保护的建议. 我原来的问题的所有答案都坚持认为我在做的事情很危险,并且大多数人都敦促我用 async_writes 甚
..
我经常需要在 C++ 中处理动态分配的数组,因此依赖 Boost 来处理 scoped_array、shared_array 等.通读 Stroustrup 的 C++11 FAQ 和 C++11 参考 Wiki,我找不到 C++11 提供的这些动态数组包装器的合适替代品标准.有什么我忽略的地方,还是我必须继续依赖 Boost? 解决方案 unique_ptr 有一个特化,比如 uniqu
..
学习c++并尝试熟悉一些模式.signals2 doc 显然有大量我可以用插槽和信号做的一系列事情.我不明白的是我应该将它用于哪些类型的应用程序(用例). 我在思考状态机调度更改事件的思路.来自动态类型的背景(C#、Java 等),您将使用事件调度程序或静态引用或回调. 在 C++ 中使用跨类回调有困难吗?这基本上是为什么signals2 存在的原因吗? 示例案例之一是文档/视图
..
在发布模式下将我的程序链接到 boost::filesystem 模块的过程中,我收到下一个错误: 错误 LNK1104:无法打开文件'libboost_filesystem-vc100-mt-s-1_49.lib' 但是,在 boost\stage\lib 目录中,我只有下一个引用文件系统模块的库: libboost_filesystem-vc100-mt-1_49.lib
..
我正在为 boost::shared_ptr 模板转换 typedef 的命名约定.例如: typedef boost::shared_ptrFooPtr; 在确定约定之前,我想看看其他人使用什么.你的约定是什么? 编辑: 对于那些将 typedef 嵌套在 Foo 中的人来说,Foo 现在“知道"了,难道你不会感到困扰吗?它将如何传递?它似乎打破了封装.这个怎么样: class
..
我一直在使用 Boost 序列化库,它实际上非常好,让我可以制作简单的包装器来将我的可序列化对象保存为字符串,如下所示: namespace bar = boost::archive;命名空间 bio = boost::iostreams;模板内联 std::string saveString(const T & o) {std::ostringstream oss;bar::binary_oa
..
使用 make_shared() 代替 shared_ptr(new T) 有什么缺点吗. Boost 文档 声明 有来自的重复请求工厂函数的用户创建一个给定类型的对象并返回一个 shared_ptr 给它.除了方便又时尚,这样的功能也是异常安全的相当快,因为它可以使用两者的单一分配对象及其对应的控件块,消除了一个重要的shared_ptr 的部分构造高架.这消除了其中之一主要效率
..
过去两个小时我一直在尝试构建 Boost C++ 库,但停止了没有任何结果.由于我是 C++ 的新手,因此无法正确构建.如何使用 Visual Studio 2008 正确构建它? 我需要使用 BCP 工具来提取库的子集.所以我需要先建立BCP,对吗?这个怎么做?当我尝试构建它时,出现以下错误 致命错误 LNK1104:无法打开文件“libboost_filesystem-vc90-m
..
什么是等价于以下内容: std::vectorvec;vec.push_back(NULL); 什么时候处理boost::shared_ptr?是下面的代码吗? std::vector>vec;vec.push_back(boost::shared_ptr()); 注意:我可能会推回很多这样的对象.我应该在某处声明一个全局静态 nullPtr 对象吗?这样就只需要构建其中一个: boos
..
std::pair 有什么用,我为什么要使用它,boost::compressed_pair 有什么好处? 解决方案 std::pair 是一种将两个值组合为一个对象的数据类型.std::map 将其用作密钥,值对. 在您学习时pair,您可以查看 tuple.它就像 pair ,但用于对任意数量的值进行分组.tuple 是 TR1 的一部分,许多编译器已经将它包含在他们的标准库
..
我在 StackOverflow 上调查了一段时间,以找到将具有多个分隔符的字符串拆分为 vector.我也找到了一些方法: 提升方式: boost::split(vector, string, boost::is_any_of(" \t")); getline 方法: std::stringstream ss(string);std::string 项目;wh
..
我正在尝试使用 boost::normal_distribution 来生成均值为 0 和 sigma 1 的正态分布. 以下代码不起作用,因为某些值超过或超过 -1 和 1(并且不应该).有人能指出我做错了什么吗? #include #include int main(){提升:: mt19937 rng;//我不是故意播种的(这无关紧要)boost::normal_distributi
..
我下载了 Boost 库,现在我只想构建几个库.什么是正确的命令?显然,built-type=complete 选项给了我太多.我使用的是 Windows XP,想使用 Bjam 编译 Boost 和 MinGW 以最终使用它.目前我认为我需要 Boost.filesystem、Boost.ProgramOptions 和 Boost.System 库.另一个问题:我应该把头文件库放在哪里?
..
直到现在我在我的项目中使用 std::queue.我测量了此队列上的特定操作所需的平均时间. 时间是在 2 台机器上测量的:我的本地 Ubuntu VM 和远程服务器.使用 std::queue,两台机器上的平均值几乎相同:~750 微秒. 然后我将std::queue“升级"到boost::lockfree::spsc_queue,这样我就可以摆脱保护队列的互斥锁.在我的本地 VM
..
我不太明白这两个锁类之间的区别.在 boost 文档中说,boost::unique_lock 不会自动实现锁定. 这是否意味着 unique_lock 和 lock_guard 之间的主要区别在于使用 unique_lock 我们必须显式调用 lock() 函数? 解决方案 先回答你的问题.不,您不需要在 unique_lock 上调用锁.见下图: unique_lock 只
..
我对如何使用 boost 库实际创建图形感到困惑,我查看了示例代码,但没有解释它的作用的注释. 如何制作图形,并随手添加顶点和边? 解决方案 这是一个简单的例子,使用邻接表并执行拓扑排序: #include #include #include #include "boost/graph/adjacency_list.hpp"#include "boost/graph/
..
我有以下 C++ 开发设置: OS X Yosemite CLion 140.2310.6(JetBrains 的跨平台 C/C++-IDE,使用 CMake 作为构建系统) 通过brew install boost安装boost到/usr/local/Cellar/boost/ 现在,我的目标是设置一个简单的项目并包含 boost 库.我只定义了一个 test.cpp 文件,如下
..
我正在考虑使用 Qt 4 框架(需要跨平台 GUI)在 C++ 中启动一个项目.我从朋友和网上听说过关于 Boost 库的好消息.我已经开始阅读两者,并想在深入了解之前提出一个粗略的问题:这两个开发“系统"是否相互排斥? 我最初的搜索和阅读显示信号处理、自定义构建系统和其他低级原语存在一些重叠. 在同一个项目中使用它们是否有意义? 解决方案 是的,这很有意义.我通常更喜欢在可能
..