Должен ли я сделать лямбды статическими? - PullRequest
6 голосов
/ 02 августа 2011

Если у меня есть функция, которая определяет лямбду, будет ли «лямда» «создаваться» каждый раз, когда вызывается функция?Должен ли я сделать это статичным, чтобы предотвратить это?

void func(int x)
{
    static auto lambda = [&x](int y) -> bool {
        // ...
    };
}

1 Ответ

6 голосов
/ 02 августа 2011

Нет, не делайте его статичным, так как он захватывает локальную переменную по ссылке.

Я понятия не имею, какова стоимость создания лямбды.Если вы подозреваете, что это проблема с производительностью: бенчмарк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...