如何在clang 3.4中使用make_unique
How to use make_unique in clang 3.4?
使用Travis-CI
我正在尝试构建一个使用std::make_unique
的C++项目。然而,我得到了一个构建错误:
no member named 'make_unique' in namespace 'std'
mFiles.emplace_back(std::make_unique<File>(*this, rec));
我已经包含了memory
,这段代码在VS2013和GCC4.8中使用-std=c++14
编译。如果我在clang 3.4中使用这个标志,我会得到一个错误:
error: invalid value 'c++14' in '-std=c++14'
根据叮当文件:
http://clang.llvm.org/cxx_status.html
我应该使用-std=c++1y
,但这仍然生成相同的no member named 'make_unique' in namespace 'std'
。那么我该如何让它发挥作用呢?
这不取决于编译器,而是取决于标准库实现。std::make_unique
不是一个核心语言特性,而是一个库函数。
检查Travis使用的libstdc++
版本。
根据GCC 4.9变更日志,std::make_unique
是在GCC 4.9发布时引入libstdc++
的。
如果Travis使用的是4.9之前的GCC版本,那么它的libstdc++
版本很可能还没有std::make_unique
。
相关文章:
- 为什么 std::unique 不调用 std::sort?
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用 make 编译 MPI,几个命名空间错误,例如"错误:未知类型名称'使用'?
- make 命令如何避免重新编译未更改的源文件?
- MAKE:找不到包含的用户定义的头文件?
- 'make check' GLIBC 运行时的链接问题
- 生成"unique"矩阵
- Qt5 [make -snap] 无法正确编译:进程"/usr/bin/snap"代码 1 退出
- mingw32-make 使用"MinGW Makefiles"生成器跟踪 CMAKE 无法将可执行文件链接到对象库
- 我对 std::unique(算法)C++有问题
- make 命令创建 .file,但不创建应用程序文件
- 如何摆脱导入的 make 项目中的 Eclipse 索引器"Type std::... could not be resolved"错误
- Qt Creator 在执行步骤 "make" 时出现编译错误,-fno-stack-limit
- 如何使用MySQL Connector and Make设置C++项目
- 使用 make 将对象文件放在特定目录中
- 我是 C++ 的新手,我试图调用 make 一个以 2 个类作为其参数的类构造函数
- "Make"失败并出现 Clang 错误 - 如何从 Clang 获得错误?
- 防止 GNU Make 在每次构建时生成 protobuf 代码
- Make zmqpp::socket::connect a std::future
- 链接从命令行转换为Make的库