c++ - 一个如何包括TR1?

标签 c++ include c++11 portability tr1

不同的编译器似乎对 TR1 有不同的想法。 G++ 似乎只接受包含以下类型:

#include <tr1/unordered_map>
#include <tr1/memory>
...

虽然微软的编译器只接受:

#include <unordered_map>
#include <memory>
...

据我了解TR1,微软的方式是正确的。

有没有办法让 G++ 接受第二个版本? 一般人如何以便携的方式处理 TR1?

最佳答案

在你的机器上安装 boost。
将以下目录添加到您的搜索路径。

/boost/tr1/tr1

看这里boost tr1了解详情

现在,当您包含 时,您将获得具有 std::tr1::shared_ptr 的 tr1 版本的内存,然后它包含平台特定版本的 以获得所有正常的好东西。

关于c++ - 一个如何包括TR1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1228402/

相关文章:

c++ - unordered_map 使用什么位散列函数?

c++ - 程序入口点 SHGetKnownFolderPath shell32 未找到

c++ - 为什么/什么时候我们应该更喜欢使用 std::swap;在 std::iter_swap(&a, &b) 上交换(a,b)?

c++ - 使用 _wtol 与小数转换

c - 如何在我的所有 C 项目文件中包含 typedef

c++ - 理解#includes C++

c++ - C++ 中何时需要#include <new> 库?

c++ - 在 public const 方法中访问私有(private)成员

c++ - VS2015如何将静态库链接到其他库和可执行文件?

c++ - 更新 C++ 时行为的无声变化是什么?