2012-02-23 3 views
2

Я пытался использовать конструктор перемещения, с станд :: двигатьсяC++ 11 GCC 4.6.2 станд :: двигаться

#include <utility> 

Но я получаю сообщение об ошибке, «движение» не является членом «станд ».

gcc --version 
gcc (GCC) 4.6.2 20111027 (Red Hat 4.6.2-1) 

Я понимаю двигаться конструктор новая функция в C++ 11, просто интересно, является ли она доступна в GCC 4.6.2 еще.

Спасибо.

+4

Добавлен флаг '-std = C++ 0x' (изменен на -std = C++ 1x для gcc 4.7) – Lalaland

+4

@EthanSteinberg: он изменен на' C++ 11' в 4.7 ... –

+2

Это не изменилось! «GCC 4.7 и более поздние версии поддерживают« -std = C++ 11' и «-std = gnu ++ 11'» ([источник] (http://gcc.gnu.org/projects/cxx0x.html)) , то есть дополнительно, а не вместо '-std = C++ 0x'. – przemoc

ответ

8

Вы компилировались с флагом C++ 0x (-std=c++0x)? g ++ по умолчанию - C++ 03.

+2

Точность: без этого флага некоторые части заголовков удаляются (используя обычный код '# ifdef'), а среди них - определение' std :: move'. –

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