Я обсуждаю следующие два стиля использования лямбды:
а) объявляем лямбду в пространстве имен в файле .cc
.
b) объявлять лямбду в функции.
Я склоняюсь к a), потому что это делает func()
менее многословным, и при каждом вызове функции не создается функтор. Существуют ли какие-либо неблагоприятные / отрицательные эффекты, которые могут иметь а)?
Стиль а)
namespace XXX{
auto lambda_in_namespace=...; // this is a cc file, lambda will not export
void func(){
// use lambda_in_namespace
}
}
Стиль б)
namespace XXX{
void func(){
auto scoped_lambda = ...
// use scoped_lambda
}
}