问题标签 [boost]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
394 浏览

macos - 什么时候可以为 Mac Port 提供 boost 1.36?

我怎样才能找到这些信息?


IE,

我可以使用类似的命令安装 boost 1.35

只是为了通过端口提升 1.36,我会做这样的事情吗?

希望能解决我的问题

0 投票
6 回答
3051 浏览

c++ - 添加 Boost 使 Debug 构建依赖于“非 D”MSVC 运行时 DLL

我有一个烦人的问题,我可能能够以某种方式规避它,但另一方面,我宁愿在它之上并了解到底发生了什么,因为看起来这些东西真的会留下来。

故事是这样的:我有一个简单的 OpenGL 应用程序,它运行良好:在编译、链接或运行它时从来没有出现过大问题。现在我决定尝试将一些更密集的计算转移到工作线程中,以便可能使 GUI 响应更快——当然是使用 Boost.Thread。

简而言之,如果我在 .cpp 文件的开头添加以下片段:

,然后我在尝试启动调试版本时开始收到“此应用程序无法启动,因为未找到 MSVCP90.dll”。(发布模式工作正常。)

现在查看使用 Dependency Walker 的可执行文件,他也没有找到这个 DLL(我猜这是预期的),我可以看到我们正在寻找它以便能够调用以下函数:

接下来,我尝试转换每个实例minmax改为使用宏,但可能找不到对它们的所有引用,因为这没有帮助。(我正在使用一些我没有可用源代码的外部库。但即使我能做到这一点——我认为这真的不是正确的方法。)

所以,我的问题——我猜——是:

  1. 即使使用调试版本,为什么我们还要寻找非调试 DLL?
  2. 解决问题的正确方法是什么?或者甚至是一个快速而肮脏的?

我首先在 Visual Studio 2008 的普通安装中安装了这个。然后尝试安装 Feature Pack 和 SP1,但它们也没有帮助。当然也尝试过多次Rebuild。

我正在为 Boost (v1.36.0) 使用预构建的二进制文件。这不是我第一次在这个项目中使用 Boost,但它可能是我第一次使用基于单独源的部件。

禁用增量链接没有帮助。该程序是 OpenGL 的事实似乎也不相关——当我将相同的三行代码添加到一个简单的控制台程序中时,我遇到了类似的问题(但它抱怨 MSVCR90.dll 和_mkdir,当我替换后者boost::create_directory,问题消失了!!)。它实际上只是分别删除或添加使程序运行正常或根本不运行的那三行。

我不能说我理解并排(甚至不知道这是否相关,但这是我现在的假设),老实说,我也不是很感兴趣——只要我能构建、调试和部署我的应用程序...


编辑 1:在尝试构建一个能够重现问题的精简示例时,我发现该问题与Spread Toolkit有关,它的使用是我所有遇到此问题的程序的共同因素。(但是,在开始链接 Boost 内容之前,我从未有过这个。)

我现在想出了一个最小的程序,可以让我重现这个问题。它由两个编译单元A.cpp和B.cpp组成。

A.cpp:

B.cpp:

一些观察:

  1. 如果我注释掉SP_joinA.cpp 行,问题就消失了。
  2. 如果我注释掉 B.cpp 的单行,问题就消失了。
  3. 如果我将 B.cpp 的单行移动或复制到 A.cpp 的开头或结尾,问题就会消失。

(场景2和3,调用时程序崩溃SP_join,但那只是因为邮箱无效......这与手头的问题无关。)

此外,Spread 的核心库已链接,这肯定是我的问题 #1 答案的一部分,因为我的系统中没有该库的调试版本。

目前,我正在尝试提出一些可以在另一个环境中重现该问题的方法。(尽管如果它真的可以在我的场所之外重复,我会感到非常惊讶......)


编辑 2:好的,所以现在我们有一个包,我可以使用它在 WinXP32 + VS2008 + Boost 1.36.0 的几乎普通安装上重现该问题(仍然是来自 BoostPro Computing 的预构建二进制文件)。

罪魁祸首肯定是 Spread 库,我的构建不知何故需要一个用于MSVC 6的相当古老的 STLPort 版本!尽管如此,我仍然觉得这些症状比较有趣。此外,很高兴听到您是否可以真正重现该问题 - 包括上面的场景 1-3。包装很小,应该包含所有必要的部件。

事实证明,这个问题与 Boost.Thread 没有任何关系,因为这个例子现在使用了 Boost Filesystem 库。此外,它现在抱怨 MSVCR90.dll,而不是以前的 P。

0 投票
5 回答
13061 浏览

c++ - 函数模板参数的C++模板实例化

我在使用模板实例化 [*] 时遇到以下问题。

文件foo.h

文件foo.cc

文件调用者.cc

虽然这编译得很好,但链接器抱怨一个未定义的符号:

void Foo::func<boost::_bi::bind_t...>

如何实例化函数 Foo::func?由于它需要一个函数作为参数,我有点困惑。我尝试在foo.cc中添加一个实例化函数,因为我习惯于使用常规的非函数类型:

显然,这是行不通的。如果有人能指出我正确的方向,我将不胜感激。

谢谢!

[*] 是的,我阅读了 parashift FAQ 精简版。

0 投票
13 回答
35331 浏览

c++ - How do I sort a std::vector by the values of a different std::vector?

I have several std::vector, all of the same length. I want to sort one of these vectors, and apply the same transformation to all of the other vectors. Is there a neat way of doing this? (preferably using the STL or Boost)? Some of the vectors hold ints and some of them std::strings.

Pseudo code:

0 投票
2 回答
7181 浏览

c++ - 用于 gcc-arm 工具链的 Boost C++ 库

我在 timesys arm-gcc 工具链上构建 1.35.0 和 1.36.0 都没有问题,无论是静态(链接静态)还是动态(.so,默认选项)。

但是,当我尝试链接一个简单的示例文件系统应用程序时:

我收到以下链接器错误:

有谁知道我怎样才能让 Boost 为 gcc-arm 工具链构建?

0 投票
9 回答
59875 浏览

c++ - Boost:asio 的最佳文档?

boost 网站上提供的文档是……有限的。

从我所阅读的内容来看,普遍的共识是很难在 boost::asio 库上找到好的文档。

真的是这样吗?如果是这样,为什么?

笔记:

  • 我已经找到了(非 boost)Asio 网站- 文档看起来与 boost 网站上的相同。
  • 我知道 Boost::asio 是新的!我正在寻找解决方案而不是借口。

编辑:

  • Boost:asio (Christopher Kohlhoff) 的作者提出了将网络库添加到 TR2 标准库的建议。虽然它不是 boost:asio 的文档,但它确实将其用作 TR2 提案的基础。由于作者在此文档中投入了更多精力,因此我发现它有些帮助,如果不是作为参考,那么至少可以作为概述。
0 投票
3 回答
15020 浏览

c++ - C++ 的 YAML 序列化库?

YAML 似乎是配置文件和数据绑定持久对象的一种很好的格式,以人类可读的形式......

是否有处理 YAML 的 C++ 库?Boost::Serialization 是否有 YAML 选项的计划?

编辑:我更喜欢 OO 库。

0 投票
6 回答
21938 浏览

c++ - 你如何制作一个异构的 boost::map?

我想要一个具有同构键类型但异构数据类型的映射。

我希望能够做类似(伪代码)的事情:

我可以有一个指向基类的指针作为数据类型,但宁愿没有。

我以前从未使用过 boost,但看过 fusion 库,但不知道我需要做什么。

谢谢你的帮助。

0 投票
3 回答
4285 浏览

c++ - Boost 最新版本兼容 VC++6 是什么?

与 Microsoft Visual C++ 6 兼容的 Boost 库的最新版本是什么?你能提供一个链接直接下载吗?

http://www.boost.org上的下载链接仅提供版本 1.36.0 的下载,该版本的文档将 Visual C++ 7.1 列为测试的 Microsoft 编译器的最低版本。他们会清除旧版本的下载吗?

0 投票
3 回答
8730 浏览

c++ - 如何在 VS 2008 上安装 boost?

我几乎已经完全安装了 Boost,但是我对如何在Tools->options->projects->VC++ Directories中设置 Boost 的路径有疑问。

我已经编写了包含文件和库的路径(我的文件夹包含两个子文件夹libinclude),但是当我尝试将 Boost 与 一起使用时 #include boost/regex.hpp,出现此链接错误:

您能否告诉我如何为 Visual Studio 2008 正确安装 Boost?