Что означает "ошибка: не может использовать тип" void "как диапазон" на самом деле означает?
Когда я скомпилирую это в clang 3.2
for(auto x : {1, 1.2}){}
Я получаю сообщение об ошибке:
error: не может использовать тип 'void' как диапазон
Что это значит?
Ответ 1
Вы смешали свои типы в списке инициализаторов. В этом случае это может быть довольно ясно, но не забывайте
std::string foo;
for(auto x : {foo, "bar"}){}
Существуют также 2 отдельных типа. Конечно, есть много других случаев, когда вы можете ожидать, что они будут работать, но типы должны точно соответствовать.