- 1
https://en.cppreference.com/w/cpp/language/lambda
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
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
небязательные обязательные пункты.
Переводил почти час.
• optional (requires-clause)
• (optional requires)-clause
Который из них правильный?
О! Теперь в объявлении лямбды есть все виды скобок:
Компилируется.
Ещё можно так, но потребуется ключик -trigraphs:
<:=:> –— захват всего контекста по значению.
<:&:> –— захват всего контекста по ссылке.
???
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"));
так лучше?
Читать лучше. Подход -- все равно жиденький. Вот когда operator . (...) дадут перегружать, тогда и поговорим