Здравствуйте, Аноним, Вы писали:
А>Почему это хорошо
Разве не очевидно?
А>А>BOOST_FOREACH(auto& file_name, files)
А>for (auto i = files.begin(); i != files.end(); i++)
А>
Первый вариант намного проще + читающий сразу понимает, что в теле foreach будет просмотрено каждое значение, без скачков.
Второй вариант — более error-prone, плюс в теле возможны скачки типа i-=10.
А>А>if(boost::algorithm::ends_with(file_name, L"dll"))
А>if (i->compare(i->size() - 3, 3, L"dll") == 0)
А>
В первом варианте нет ничего лишнего — два значения и вызов предиката — проще и быть не может (разве что специальный кроссплатформенный предикат is_dynamic_library_name, но это уже другая логика).
Во втором же варианте добавляются вычисления с жёстко прибитыми длинами, опять же более error prone.
А>"ржу не могу всем отделом LOL" ???
А это скорее показатель культуры отдела.