Как и во всех вопросах стиля кодирования, ответ на вопрос неизбежно «зависит». Например, короткие лямбды обязательно должны быть однострочными:
std::transform(v.begin(), v.end(), v.begin(), [](int i) { return i + 1; });
Длинные лямбды, которые не могут легко поместиться в одну строку, должны быть распределены по нескольким строкам:
std::transform(v.begin(), v.end(), v.begin(), [](int i) -> int
{
// lines
// of
// code
return i + 1;
});
Имеет ли значение, находится ли начальная скобка в той же строке, что и вызов transform
, или в своей собственной строке? Нет.
По моему мнению, единственное хорошее, непротиворечивое правило в отношении форматирования кода - "если оно выглядит уродливо, сделайте его менее уродливым"