gpt4 book ai didi

c++ - 为什么有些包含文件只驻留在 tr1 中?

转载 作者:可可西里 更新时间:2023-11-01 18:09:30 29 4
gpt4 key购买 nike

当我尝试包含类似 <unordered_map> 的内容时它失败并说该文件不存在,而当我尝试包含 <tr1/unordered_map> 时有用。然而,在 c++03 中也存在的包含文件被发现,并且是 c++11(如 <vector> 具有移动构造函数)。此外,通常也可以找到仅在 c++11 中而不在 tr1 中的 header ,例如 <thread>。 .
就像 tr1 中的所有新内容都被扔进了 tr1 文件夹,其他所有内容都进入了正常的 include。
为什么会这样?有没有不修改源文件的修复方法?
路过-I/path/to/include/tr1不会工作,因为一切都在 tr1 命名空间中。
我使用的编译器是

Apple clang version 3.0 (tags/Apple/clang-211.10.1) (based on LLVM 3.0svn)

最佳答案

TR1(技术报告 1)不是标准,而只是一份报告。这是让人们知道委员会对该领域感兴趣的官方方式。任何 tr1 实现都是实验性版本,旨在获得现场反馈以改进 future 标准。

使用 Apple 的 Xcode 4.2,您可以通过在build设置中搜索“libc++”来选择一个几乎完整的 C++11 库,然后选择“libc++”作为 C++ 标准库(这不是默认设置)。

或者,如果您更喜欢命令行,您可以 -stdlib=libc++。

libc++ 不包含任何 tr1 组件,但包含除 <atomic> 之外的所有 C++11 .

关于c++ - 为什么有些包含文件只驻留在 tr1 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7870897/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com