首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在clang3.4中使用make_unique?

如何在clang3.4中使用make_unique?
EN

Stack Overflow用户
提问于 2015-04-03 12:15:14
回答 1查看 5.2K关注 0票数 4

使用Travis-CI,我试图构建一个使用std::make_unique的C++项目。但是,我得到了一个构建错误:

代码语言:javascript
运行
复制
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编译。如果在clang3.4中使用此标志,则会得到一个错误:

代码语言:javascript
运行
复制
error: invalid value 'c++14' in '-std=c++14'

根据clang文档:

status.html

我应该使用-std=c++1y,但这仍然是相同的no member named 'make_unique' in namespace 'std'。那我怎么才能让它起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-04 19:42:57

这不取决于编译器,而取决于标准库实现。std::make_unique不是一个核心语言特性,而是一个库函数。

检查Travis使用的libstdc++版本。

GCC 4.9变化g报道,GCC·4.9释放后,std::make_unique被引入libstdc++

如果特拉维斯在4.9之前使用GCC的版本,那么它的libstdc++版本很可能还没有std::make_unique

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29432033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档