我已经安装了最新版本的MinGW / MSYS环境。现在我尝试激活c ++ 11标准支持。我已添加到我的cmake脚本中:
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=gnu++0x")
如果我尝试构建一个简单的测试。我得到了以下编译失败:
error: 'shared_ptr' is not a member of 'std'
在我看来,没有设置c ++ 11支持。如果我从我的代码中删除std :: shared_ptr声明并尝试编译chrono库的一些代码它可以工作。这让我很困惑。 为什么支持某些c ++ 11库,但像shared_ptr这样的核心元素会失败?
我是否需要做一些额外的事情才能启用智能指针,或者他们不在那里?
答案 0 :(得分:2)
您可以/也应该(也)使用-std=c++0x
以便不启用g ++扩展。
确保#include <memory>
。