2013-06-24 1 views
2

Есть ли способ использовать анонимный массив в цикле для диапазона? Я пытаюсь сделать что-то вроде этогос использованием анонимного массива в цикле для диапазона в C++

for(auto i: {1,2,3,5,7,11,17}) //do something 
+0

Я не знаю. Я читал о C++ 11, поэтому я ожидал, что это сработает. Я попробовал это в visual studio 2012, но это не сработало. – German

+0

Это работает в VS 2015: 'enum NotesType {HAS_TEXT, EMPTY_NOTE}; for (NotesType notesType: {HAS_TEXT, EMPTY_NOTE}) {...} ' –

ответ

3

Да есть; это выглядит так:

#include <initializer_list> //MUST INCLUDE THIS! 

for(auto i: {1,2,3,5,7,11,17}) //do something 
+1

Ох, спасибо. Тогда это визуальная студия. – German

+3

@ German IIRC, VS еще не поддерживает списки инициализаторов. – Casey

0

У вас могут быть проблемы, потому что нет типа ... вместо автоматического объявления «i» как целого.

Отношения

+2

'auto' изменил значение в C++ 11. – chris