从std :: memory或std :: tr1(gcc 4.7)找不到make_shared

时间:2013-04-14 04:53:01

标签: c++ c++11 gcc4.7

我不明白为什么我无法从std::memory or std::tr1包含标题中找到make_shared。

我只在机器中看到1个版本的gcc

ls -lh /usr/bin/g++
lrwxrwxrwx 1 root root 7 Sep 22  2012 /usr/bin/g++ -> g++-4.7

我在项目构建属性中也使用了-std=c++11标记

我的环境:ubuntu ecplise juno R2 CDT

#include <memory>
#include <tr1/memory>
int main()
{
    std::tr1::shared_ptr<int> t = std::tr1::make_shared<int>(1);

    std::shared_ptr<int> t = std::make_shared<int>(1);

}

更新

eclipse控制台窗口中的构建显示它实际上是成功的,但代码编辑器保持红色强调shared_ptr和make_shared。我试图重建索引,清除项目。没有什么可以消除错误。有什么建议吗?

16:15:09 **** Incremental Build of configuration Debug for project test ****
make all 
Building target: test 
Invoking: GCC C++ Linker
g++  -o "test "  ./main.o   
Finished building target: test 


16:15:09 Build Finished (took 328ms)

更新2:

以下链接解决了我的问题 Enable C++11 in Eclipse CDT (Juno/Kepler/Luna) indexer

0 个答案:

没有答案