Терминологический вопрос про лямбды в С++
От: Alexander G Украина  
Дата: 09.09.08 07:13
Оценка:
В С++0x лямбды могут захватывать переменные по значению или по ссылке. В первом случае происходит копирование и после создания функции копия не зависит от оригинала, тогда она может просуществовать дольше чем оригинал. Во втором случае копия и оригинал являются тем же объектом, при этом время жизни определяется временем жизни исходной переменной. То же самое применимо и к эмуляторам лямбд в действующем стандарте С++.

Везде, где замыкания (closures) описаны не в контексте С++ (и вообще, и для скриптов, и для C#) упоминается о использовании исходной переменной (а не её копии) и продлении её времени жизни. Варианты с копией или с UB при использовании позже чем можно не описаны.

Вопрос к тру функциональщикам. Является ли С++ лямбда с захваченными переменными "замыканием" или это "на безрыбье и рак рыба" ?
Русский военный корабль идёт ко дну!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.