- 1
- 2
- 3
- 4
auto L = [](int i)->int { return i+1; };
typedef decltype(L) TL;
auto lfunc = &TL::operator();
int i = (L.*lfunc)(1);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+153
auto L = [](int i)->int { return i+1; };
typedef decltype(L) TL;
auto lfunc = &TL::operator();
int i = (L.*lfunc)(1);
Lure Of Chaos 08.10.2011 23:03 # +1
Xom94ok 08.10.2011 23:45 # 0
Lure Of Chaos 08.10.2011 23:48 # +1
RS-232 09.10.2011 00:07 # 0
http://ideone.com/t67as
http://ideone.com/3V0h9
http://ideone.com/bjPuR
http://ideone.com/fYY6p
Стандарт как всегда отжигает..
RS-232 09.10.2011 00:22 # −2
Xom94ok 09.10.2011 01:08 # +1
RS-232 09.10.2011 01:10 # 0
автор чего?
Xom94ok 09.10.2011 01:16 # 0
RS-232 09.10.2011 01:31 # −4
RS-232 09.10.2011 12:11 # −3
И какие же? (:
carsten 09.10.2011 00:41 # 0
RS-232 09.10.2011 01:04 # 0
В С++ или вообще?
carsten 12.10.2011 09:03 # 0
Xom94ok 08.10.2011 23:30 # 0
Lure Of Chaos 08.10.2011 23:33 # +6
RS-232 08.10.2011 23:39 # −2
http://govnokod.ru/8128
(:
RS-232 08.10.2011 23:40 # 0
в таких случаях говорят, нужно оптимизировать алгоритм
Xom94ok 08.10.2011 23:42 # 0
RS-232 08.10.2011 23:47 # −1
Kirinyale 11.10.2011 17:13 # +2
carsten 09.10.2011 00:49 # 0
Предчувствую море дебаго-боли с чем-то вроде:
"segfault at function functional::blabla<functional::lambda<ra ndom_crap::randomshit>, context::iter, func::<another_random stuff>>"
RS-232 09.10.2011 01:09 # −2
Везде с этим всё хорошо. (:
*что у лямбд в С++ с управлением памятью?
Лямбды в С++? Не. Не видел. (:
Это детский сад, а не лямбды. Просто не именованные функции с простейшими замыканиями. Этакая поделка в стиле аля страус труп.
И уж тем более понятно, что как и во всем С++, управление памятью там ручное.
SmackMyBitchUp 09.10.2011 10:15 # 0
RS-232 09.10.2011 10:49 # −5
bugmenot 09.10.2011 12:06 # +4
Lure Of Chaos 09.10.2011 12:20 # +6
SmackMyBitchUp 09.10.2011 12:27 # +1
gegMOPO4 09.10.2011 11:15 # +1
А в ногу выстрелить есть множество других способов.
RS-232 09.10.2011 11:18 # −4
fixed
carsten 12.10.2011 09:08 # 0
Не могу придумать пользы тогда вообще.
Лямбды полезны тем, что они замыкают свой контекст, и кидаются в другой контекст, позволяя их связывать между собой (характерный пример -- event-driven programming).
Ежли в С++ они используются там же, где и определены (из того же контекста)... То иного смысла их включать в язык нежели как быть "edgy" на волне моды на функциональщину, не вижу.
roman-kashitsyn 12.10.2011 09:21 # 0
gegMOPO4 12.10.2011 10:28 # +1
Аналогично с указателями/ссылками на локальные переменные. Можете их передавать и использовать, пока контекст, в котором они созданы, не умер. Так что ничего нового и неочевидного в плане наступить на грабли не появилось.
Ну и лямбды, не являющиеся замыканиями, думаю, можно использовать шире.
carsten 14.10.2011 03:07 # −1
Ну это было всегда решаемо метапрограммированием, например. Или интерфейсами (скажем ISortable + ссылка на виртуальный метод и т.д.)
Избыточность какая-то.
RS-232 09.10.2011 12:32 # −1
Скорее segfault at address (:
AnimeGovno-_- 02.11.2011 07:39 # 0
guest8 09.04.2019 11:42 # −999