Вложенные функции через lambda
От: tdiff  
Дата: 27.08.14 12:19
Оценка:
Если я хочу объявить внутри функцию, вложенную в другую, можно поступить примерно вот так:


void f()
{
  auto g = [] (int x) { return x > 0; };

  // use g somehow
  ...
}



Но правильно ли я понмиаю, что каждый раз, заходя в f, будет создан новый объект lambda_xxx и это теоретически должно снижать производительность?

Есть ли смысл заменить auto g на static auto g?

Может компилятор такие лямбды без захвата оптимизирует и превращает в свободные функции?

Или использовать лямбды без захвата — баловство и надо вынести g() из f()?
a
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.