Я попытался скомпилировать элементарный пример:
#include <vector>
int main ()
{
std::vector<int> testV;
for (const auto& test : testV)
{ }
return 0;
}
И я получил ошибку:
test.cpp: In function 'int main()':
test.cpp:5:29: error: 'begin' was not declared in this scope
test.cpp:5:29: error: 'end' was not declared in this scope
test.cpp:5:29: error: unable to deduce 'const auto&' from '<expression error>'
Поддерживает ли STLport const auto
?
РЕДАКТИРОВАТЬ: я использую GCC 4.6
С 4.7 и более все ок.
GCC 4.6 вышла весной 2011 года, не обошлось без ошибок в большинстве функций C ++ 11. Тем не менее, примерно в то же время правила поиска ADL в диапазоне были также изменены (обратите внимание, что это было до официальной ратификации Стандарта C ++ 11 летом 2011 года). Увидеть этот вопрос& Больше подробностей. Вероятно, не стоит отлаживать это, и рекомендуемый порядок действий — обновить его до последней версии gcc (4.7 или предпочтительно 4.8).
Других решений пока нет …