Здравствуйте, rg45, Вы писали:
R>Можно-то можно, вот только нужно ли. Я понимаю, если лямбда передается параметром в какую-то другую функцию, тогда, конечно, ее использование обправдано, ибо ради этого лямбды и придуманы, собственно. А опредлить лямбду только для того, чтобы тут же ее и вызвать — польза от такого использования лично для меня сомнительна. Обычная свободная функция в анонимном пространстве имен — вот что самое оно для таких случаев — код получается и проще, и компактнее, и читабельнее. Хотя, все субъективно, конечно.
Чем плохо:
void Foo::Prn()
{
auto fnEnabled = [](bool b) -> const char* { return b ? "enabled" : "disabled"; };
std::cout << "filter : " << fnEnabled(m_bFilter ) << std::endl
<< "leds : " << fnEnabled(m_bLeds ) << std::endl
<< "detector : " << fnEnabled(m_bDetector) << std::endl;
}
?