如何在clang 3.4中使用make_unique?

保罗

使用Travis-CI我正在尝试构建一个使用的C ++项目std::make_unique但是我得到一个构建错误:

no member named 'make_unique' in namespace 'std'
            mFiles.emplace_back(std::make_unique<File>(*this, rec));

我已经包括了memory,并且此代码在VS2013和gcc 4.8中使用编译-std=c++14如果在clang 3.4中使用此标志,则会出现错误:

error: invalid value 'c++14' in '-std=c++14'

根据clang文档:

http://clang.llvm.org/cxx_status.html

我应该使用,-std=c++1y但这仍然相同no member named 'make_unique' in namespace 'std'那么如何使它工作呢?

罗密欧

这不依赖于编译器,而是依赖于标准库的实现。std::make_unique不是核心语言功能,而是库功能。

检查libstdc++Travis使用的版本


根据GCC 4.9更改日志在GCC 4.9发行时std::make_unique引入了libstdc++更改日志

如果Travis使用的是4.9之前的GCC版本,则很有可能libstdc++还没有版本std::make_unique

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章