В настоящее время я рассматриваю новые возможности C ++ 11, и по непонятным на данный момент причинам некоторые из них не компилируются . Я использую gcc версии 4.6.0 20100703 (экспериментальный) (GCC), поэтому, согласно GNU GCC FAQ, все функции, которые я пробовал, поддерживаются . Я попытался скомпилировать оба флага std = c ++ 0x и std = gnu ++ 0x.
Например, я не хочу использовать не члены begin () и end () в фрагменте кода вроде:
#include
#include
И я получаю,
nonMemberBeginEnd//main.cc:15:24: error: ‘begin’ was not declared in this scope
nonMemberBeginEnd//main.cc:15:24: error: unable to deduce ‘auto’ from ‘’ // Ok, this one is normal.
nonMemberBeginEnd//main.cc:16:26: error: ‘end’ was not declared in this scope
Нужно ли мне включать специальные заголовки?
Мой второй (и последний) вопрос более странный, потому что он не может зависеть от скрытого заголовка черной магии, который я, возможно, не включил.
Следующий код:
for ( auto kv : alias )
cout << kv.first << " ~ " << kv.second << endl;
Выдайте мне следующие ошибки:
rangeFor/main.cc:15:17: error: expected initializer before ‘:’ token
Надеюсь, мои вопросы не не по теме и не слишком новички для вас, ребята, и вы поможете мне выяснить, что случилось: D