0

我不明白为什么我无法从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

4

0 回答 0