클로저에 대한 설명을 MDN에서 보니까(대충 감각적으로 알고 있었음)

클로저는 독립적인 (자유) 변수를 가리키는 함수이다. 또는, 클로저 안에 정의된 함수는 만들어진 환경을 '기억한다'.

임.

C++11에서 익명함수를 지원하기 때문에 클로저를 지원함.

C++에서는 클로저로 지역변수를 캡쳐할 떄 두가지 방식으로 챕쳐할 수 있음

1. 변수의 레퍼런스가져오는 방식

2. 변수의 값을 복사하는 방식

레퍼런스를 가져오는 방식으로 캡쳐하면 함수가 끝날 때 지역변수들도 소멸하므로 아까 GoLang처럼 하다가는 함수스택이 망가짐.

변수의 값을 복사하는 방식으로 캡쳐하면 const, 상수여서 값은 볼 수 있지만 변수를 수정할 수 없음.

GoLang이나 다른 메모리관리가 되는 프로그래밍 언어야 레퍼런스변수만 복사하는 것이고, 객체의 해제가 객체를 참조하는 레퍼런스 변수가 없을 때 해제될테니 문제가 없지만 C++은 그러지 않기 때문에 똑같은 방식으로는 못한다고 생각함.