лямбда-константность? - PullRequest
       5

лямбда-константность?

3 голосов
/ 08 октября 2011

c ++ 0x поддерживает лямбда-выражения, которые записывают значения по ссылке:

[&] -> ret_t { return 0; }

Имеет ли смысл захватывать константные ссылки?

[const &] -> ret_t { return 0; }

Более фундаментально для рассматриваемого вопроса; есть ли способ обнаружить, если данная лямбда, переданная как std::function<>, не имеет побочных эффектов?

1 Ответ

2 голосов
/ 08 октября 2011

Вы даже не можете гарантировать, что то, что в std::function , является лямбда или нет.Вы, конечно, не можете гарантировать отсутствие побочных эффектов.

Если вы хотите убедиться, что написанная лямбда-функция не имеет побочных эффектов (в той степени, в которой такие вещи могут быть обеспечены), единственноеспособ сделать это состоит в том, чтобы захватить ничто: [].

...