장렬히 떠나신 auto_ptr에 대한 내용은 기술하지 않겠습니다. 평소에 자주 쓰는 스마트 포인터는 shared_ptr, unique_ptr 이 둘뿐이라고 생각합니다. shared_ptr p(new int[10], [](int* p){ delete[] p; }); 아마 배열을 쓰신다면 이렇게 쓰시겠죠. 그렇다고 함수객체를 쓰기엔 너무 복잡하니까. 하지만 C++17에선 타입을 T[]라고 쓰는 것만으로도 알아서 다~ 해제해줍니다. shared_ptr p(new int[10]); 하지만 shared_ptr은 tuple이나 array와 달리 Deduction Guide가 존재하지 않습니다. (존재하긴 합니다. weak_ptr이나 unique_ptr일때만....) 그래서 제가 한번 만들어봤습니다. template..