참조 횟수 관리자 클래스인 NutCount와 스마트 포인터인 NutPtr를 적용했다.

별로 유별난 건 없고, 통상의 intrinsic pointer과 똑같은 개념이다.

기본적인 것들은 전부 구현했는데, 캐스팅 연산자를 어떻게 해줘야 할까 고민하다가 intrinsic_ptr에서 아이디어를 따왔다.

NutPtr<TO> static_pointer_cast<class TO, class FROM>(NutPtr<FROM> const & p)
NutPtr<TO> const_porinst_cast<class TO, class FROM>(NutPtr<FROM> const & p)
NutPtr<TO> dynamic_pointer_cast<class TO, class FROM>(NutPtr<FROM> const & p)
를 구현해줬다.

처음에도 이와 비슷하게 할까 고민했다가 별로 좋은 방법 같지 않아서 관뒀는데, 뭐 boost에서도 쓰고 있으니 그냥 그대로 했다.

파라메터를 넘길 때에도 전부 스마트 포인터로 떡칠을 해놓을 정도로 소스코드에서 *을 없애버렸는데, 솔직히 이게 좀 오버인지 궁금하기도 하다. 해보다가 오버헤드가 너무 심하다 싶으면 파라메터에선 네이티브 포인터를 쓰고, 원래는 없던 네이티브 포인터 연산자도 추가해야겠다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/05/29 22:10 2008/05/29 22:10

Trackbas address :: http://jkherald.com/trackback/290



19