0xd34df00d
07.12.2011 20:46 Azoth_primary
А вот это оче охуенно. Вместо того, чтобы писать
if (!version.name ().isEmpty ())
html += tr ("Name:") + ' ' + version.name () + "<br />";
if (!version.version ().isEmpty ())
html += tr ("Version:") + ' ' + version.version () + "<br />";
if (!version.os ().isEmpty ())
html += tr ("OS:") + ' ' + version.os () + "<br />";
или создавать функтор в анонимном неймспейсе недалеко от функции, делающей это, можно написать так:
auto gapp = [&html] (QString user, QString part)
{
if (!part.isEmpty ())
html += user + ": " + part + "<br />";
};
gapp (tr ("Name"), version.name ());
gapp (tr ("Version"), version.version ());
gapp (tr ("OS"), version.os ());
можно еще нечто вроде
template<Callable C>
runInCapturedState(C c) {
push(state);
c();
pop(state);
}
runInCapturedState([]()
{ blah-blah;}
);
Надо правда, чтобы c не кидалась исключениями, при таком коде. Либо прикрутить в try.
это можно сделать макросами
А с памятью не наебешься? Ну там, скоупинг, вся хуйня.
Нахуй иди сразу молча далеко.
:D
Ну, это концепт. It depends.
Из-за отсутствия GC и нежелания оборачиваться шаред_птрами на каждый чих очень неохота давать лямбдам убегать куда-то дальше 5 строк от ε-окрестности.
по идее, она должна просто инлайнуться в месте вызова.
лямбда без замыкания — суть функция и следить не надо
если захвачено что-то по ссылке, то надо
если захвачено по ссылке то выпускать вообще низзя
то то же, так что без GC это опасная хуета
А я про замыкания.
Вот и я про то же.
захватывайте по значению
Movable по значению ? кекеке
movable only*
с другой стороны, еще никогда std::for_each не был так охуенен, как в сочетании с лямбдой, хватающей по неконстантной ссылке.
ДЖА.
Правда, если писать аналог map (то есть, std::for_each (..., [&cont] (...) { cont.push_back (...); });), то я предпочитаю std::transform с std::back_inserter'ом. Мне кажется, оно как-то идеологически вернее, что ли.
А сверткоподобные вещи через std::accumulate :)
Да.
я тесты как-то читал, constexpr обещает быть мегагоднотой на фоне темлейтозадроства и генерации рекурсивных специализаций
о, http://cpptruths.blogspot.com/2011/07/wa...
О, шпашибки, гляну и ваще блог почитаю.
Тогда уж tr() в лямбду запихни, чтобы было ЛЕНИВО
Оно там не нужно, ленивость эта.