- 1
std::cout << [&i](){return i;}();
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+165
std::cout << [&i](){return i;}();
И вот ещё одна жертва стандарта. На этот раз она в пасть лезет добровольно.
Я ни в одном языке, кроме крестов, не видел списка захвата почему-то. Наверное, это потому, то С++ крутой кулхацкерский язык.
Есть много и других возможностей, типа mutable или [&] или [=] и тд. Последние 2 варианта захватывают по ссылке и значению все окружающие переменные, если они нужны. Понятно, что мы теряем возможность контроля ошибок использования лишних переменных. Там реально много возможностей, типа [=, &тарас_блеать], но нет вывода типа параметров функции, без чего лямбды С++ становятся дешёвой игрушкой.( Но лучше с ними, чем без них.
Вот сюда посмотрите:
http://topsy.com/govnokod.ru/7677