Рассмотрим следующий код:Лямбда-конструкция и статическая лямбда?
// Classic version
template <class It>
It f(It first, It last)
{
using value_type = It::value_type;
auto lambda = [](value_type x){return x > 10 && x < 100;};
return std::find_if(first, last, lambda);
}
// Static version
template <class It>
It f(It first, It last)
{
using value_type = It::value_type;
static auto lambda = [](value_type x){return x > 10 && x < 100;};
return std::find_if(first, last, lambda);
}
Есть ли разница в производительности между этими двумя? Каково время строительства лямбда-функции? Является ли статическая версия лучше с точки зрения производительности, потому что лямбда построена только один раз?