Re[4]: Объясните динозавру
От: Evgeny.Panasyuk Россия  
Дата: 11.04.14 18:02
Оценка:
Здравствуйте, bnk, Вы писали:

К>>>
К>>>for(const auto& file_name : files)
К>>>

_>>не совсем, 10 студия этого не умеет
bnk>13 вполне умеет.

Умеют 2012 и 2013.
Re: Объясните динозавру
От: __kot2  
Дата: 11.04.14 18:39
Оценка: -1 :)
я за второй вариант, так как, как минимум, первый требует буста, да и синтаксически коряв
Re[2]: Объясните динозавру
От: Кодт Россия  
Дата: 11.04.14 19:31
Оценка: :)
Здравствуйте, __kot2, Вы писали:

__>я за второй вариант, так как, как минимум, первый требует буста, да и синтаксически коряв


Приноси канделябр с собой
Перекуём баги на фичи!
Re[3]: Объясните динозавру
От: __kot2  
Дата: 14.04.14 13:31
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, __kot2, Вы писали:


__>>я за второй вариант, так как, как минимум, первый требует буста, да и синтаксически коряв


К>Приноси канделябр с собой

вообще, я за for_each. но не за набитый капслоком длинный макрос, еще и требующий сторонней библиотеки. это должна быть базовая конструкция языка (по-моему она появилась уже в каком-то стандарте, если не ошибаюсь?)
Re[4]: Объясните динозавру
От: Evgeny.Panasyuk Россия  
Дата: 14.04.14 13:49
Оценка: 4 (1)
Здравствуйте, __kot2, Вы писали:

__>(по-моему она появилась уже в каком-то стандарте, если не ошибаюсь?)


Появился в C++11, называется range-based for. Вообще, при наличии полиморфных лямбд (C++14), он не сильно и нужен:
for(auto x : expr)
{
    use(x);
}
// versus
for_each(expr, [](auto x)
{
    use(x);
});

Вариант с for_each даже более удобен, так как время жизни всех временных объектов в expr более естественное, а в range-based for можно получить сюрпризы.
С другой стороны, появляются вопросы про break, continue, return и т.п.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.