너네 혹시 shared_ptr 사용해본 사람 있어 ?

거기서 꼭 힙 메모리에서 할당받은 객체의 주소 말고도 그냥, HANDLE 이라던지 , 지역 객체에 대한 주소값을 

넘길수 있는데 ,

이때 넘겨진 주소 ( HANDLE 또는 지역 객체 )에 delete 를 하게 되면 exception이 생기자나 .

그래서 삭제자( deleter )이란걸 설정할수 있어서

자기가 소멸될 시기에 삭제자가 설정되어 있으면 삭제자의 operator() 함수가 호출되는 형식이거든.


근데 말야 ..


같은 클래스에서 삭제자를 설정 하거나 , 설정하지 않거나 할때
삭제자를 어떤식으로 구현했을지 궁금한거야.


그러니깐 삭제자를 설정하지 않는 생성자에서는, shared_ptr클래스 내부에서 삭제자를 어떻게 삭제자 객체를 만들었을까 이거지 .

질문이 이해가 안가지 ? 

템플릿에서 타입 추론이 2가지 형식으로 할수 잇는데, 인스턴스화시에 < int > 요런식으로 클래스를 선언하거나 함수를 호출시에

두번째는 넘겨진 인자로 타입 추론

요 두가지 인데..

shared_ptr에서는 소멸자를 인자로 넘기지 않는 생성자 에서는
std::tr1::shared_ptr< int > a( new int ); // 삭제자 명시 X
그럼 저 삭제자를 인자로 받지 않는 shared_ptr생성자에서 는 어떻게 삭제자를 만들수 있냐 이거지..?

이해가 되나 ?;