람다 표현식은 "평가되지 않은 표현식"에 넣을 수 없다.
// 이렇게 컴파일은 가능.
// 그러나, 람다표현식은 디폴트 생성자가 없기 때문에 instance화 해서 사용할수가 없다.
auto del = [](int* p) { free(p); };
unique_ptr<int, decltype(del)> p1(static_cast<int*>(malloc(sizeof(int))));
// 결국 생성자를 통해서 람다를 복사해서 사용해야 한다.
// (그럴려면 람다를 받을 수 있는 맴버 변수가 필요한데, Empty Class를 통해 메모리 최적화 가능)
// 람다 표현식을 바로 사용가능하다.
unique_ptr<int, decltype([](int* p) { free(p); })> p1(static_cast<int*>(malloc(sizeof(int))));