Подтвердить что ты не робот

Что означает "ошибка: не может использовать тип" void "как диапазон" на самом деле означает?

Когда я скомпилирую это в clang 3.2

for(auto x : {1, 1.2}){}

Я получаю сообщение об ошибке:

error: не может использовать тип 'void' как диапазон

Что это значит?

4b9b3361

Ответ 1

Вы смешали свои типы в списке инициализаторов. В этом случае это может быть довольно ясно, но не забывайте

std::string foo;
for(auto x : {foo, "bar"}){}

Существуют также 2 отдельных типа. Конечно, есть много других случаев, когда вы можете ожидать, что они будут работать, но типы должны точно соответствовать.