c++11 - 为什么 clang++ 缺少转发列表?

标签 c++11 clang++

我编写了一个简单的 C++ 程序,它依赖于 forward_list 就像

#include <forward_list>
#include <iostream>
int main() {
  std::forward_list<int> my_list;
  my_list.push_front(3);
  std::cout << my_list.top() << std::endl;
  return 0;
}

但是,当我使用 clang++ my_program.cpp -std=c++11 -o my_program 在 Mac 上编译此程序时,出现以下错误:

my_program.cpp:1:14: fatal error: 'forward_list' file not found
#include <forward_list>
         ^
1 error generated.

为什么 clang 找不到 forward_list?其他 C++11 功能正在运行。例如,auto 关键字可以工作,尽管会出现一条警告,告诉我 auto 是 C++11 功能。

最佳答案

默认情况下,clang++ 使用较旧的 gcc-4.2 std 库,该库不支持 C++11。您可以通过命令 -stdlib=libc++ 告诉 clang 使用支持 C++11 的 std::lib 。 libc++ 有 <forward_list> .

关于c++11 - 为什么 clang++ 缺少转发列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16880571/

相关文章:

c++ - constexpr 表达式和变量生命周期,g++ 和 clang 不一致的例子

c++ - 优化的 clang 处理溢出

c++ - move 构造函数(错误 : call to implicitly-deleted copy constructor)

c++ - 元组作为返回类型,是否优化了未访问的值?

c++ - 如何按类型生成指针 vector ?

C++11:格式错误的调用是未定义的行为?

c++ - clang 编译的模块 pcm 文件有什么用?

multithreading - macosx 线程显式标记为已删除

c++ - 如何使 C++ 中的 for each 循环函数与自定义类一起使用

c++ - 何时重载按引用传递(左值和右值)优于按值传递?