2013-05-06 7 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++ (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2 

Должен ли я сначала «активировать» C++ 11?

+5

Вам нужно использовать флаг компилятора '-std = C++ 11'. – juanchopanza

+0

Где я могу ввести этот флаг? Я использую Code :: Blocks 10.05. – user1170330

+0

Настройки> Компилятор> Параметры компилятора> Другие параметры – Morwenn

ответ

3

Вам необходимо передать флаг компилятора -std=c++11 компилятору g ++. CodeBlocks позволяет настроить это через

Настройки -> Compiler -> Compiler Настройки

Примечание для старых версий GCC, вам может понадобиться -std=c++0x.

Смежные вопросы