2013-05-06 85 views
3

我想玩弄C++ 11的新功能,即使用Smart Pointers。我發現了一個exampleg ++(Ubuntu的/ Linaro的4.7.2-2ubuntu1)4.7.2這裏:Cplusplus11-Smart-Pointers激活智能指針?

#include <memory> 

int main() { 
    std::shared_ptr<int> sptr1(new int); 
} 

當我嘗試一下就是一切,我得到:

In function ‘int main()’:| 
error: ‘shared_ptr’ was not declared in this scope| 
error: expected primary-expression before ‘int’| 
error: expected ‘;’ before ‘int’| 

這是我的G ++版本:

g++ (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2 

我必須首先「激活」C++ 11嗎?

+5

您需要使用'-std = C++ 11'編譯器標誌。 – juanchopanza 2013-05-06 18:25:12

+0

我可以在哪裏輸入該標誌?我使用Code :: Blocks 10.05。 – user1170330 2013-05-06 18:29:56

+0

設置>編譯器>編譯器設置>其他選項 – Morwenn 2013-05-06 18:39:35

回答

3

您需要將-std=c++11編譯器標誌傳遞給G ++編譯器。代碼塊允許您通過

設置配置此 - >編譯器 - >編譯器設置

注意舊版本的GCC,你可能需要-std=c++0x