- 1
https://en.cppreference.com/w/cpp/language/lambda
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
https://en.cppreference.com/w/cpp/language/lambda
> Explanation
> > <tparams>
> Like in a template declaration, the template parameter list may be followed by an optional requires-clause, which specifies the constraints on the template arguments.
> optional requires-clause
небязательные обязательные пункты.
Переводил почти час.
real_escape_string # 0
guest # 0
это ключевое слово "requires"
https://en.cppreference.com/w/cpp/keyword/requires
optional -- значит оно не обязательное
что не так?
BOKCEJIbHblu_nemyx # 0 ⇈
cocunamp # 0 ⇈
guest # 0 ⇈
гляди-ка, работает
PACTPOBblu_nemyx # 0 ⇈
• optional (requires-clause)
• (optional requires)-clause
Который из них правильный?
OlegUP # 0 ⇈
gost # 0
О! Теперь в объявлении лямбды есть все виды скобок:
PACTPOBblu_nemyx # 0 ⇈
Компилируется.
PACTPOBblu_nemyx # 0 ⇈
Ещё можно так, но потребуется ключик -trigraphs:
gost # 0 ⇈
guest # 0 ⇈
--да, но это во-первых не расширяемо, а во-вторых не безопастно. Вот тебе шаблон на 800 строк который компилируется всего две минуты и делает совершенно безопасный и расширяемый код
PACTPOBblu_nemyx # 0 ⇈
<:=:> –— захват всего контекста по значению.
<:&:> –— захват всего контекста по ссылке.
ASD_77 # 0
???
BOKCEJIbHblu_nemyx # 0 ⇈
ASD_77 # 0
any outer = 12;
std::function<any(const std::initializer_list<any> &)> main1 = [&] (const std::initializer_list<any> ¶ms) ->any {
auto iter = params.begin();
auto end = params.end();
any p0 = end != iter ? *iter++ : any();
any p1 = end != iter ? *iter++ : any();
std::cout << outer << std::endl;
return p0 + p1;
};
o1["method2"] = main1;
any r3 = o1["method2"](any("p1"), any("p2"));
BOKCEJIbHblu_nemyx # 0 ⇈
ASD_77 # 0 ⇈
так лучше?
Elvenfighter # 0 ⇈
Читать лучше. Подход -- все равно жиденький. Вот когда operator . (...) дадут перегружать, тогда и поговорим
AHCKujlbHblu_netyx # 0 ⇈
PACTPOBblu_nemyx # 0 ⇈
6arPoBblu_nemyx # 0 ⇈
PACTPOBblu_nemyx # 0 ⇈
6arPoBblu_nemyx # 0 ⇈
guest # 0 ⇈
gost # 0 ⇈