본문 바로가기
내가만드는것_만든것/오픈소스

[C++] SmartPointer 클래스 구현

by Joseph.Lee 2016. 10. 31.

C++에서 SmartPointer 탬플릿 클래스를 구현했습니다.


기본적으로 C++는 리턴이나 대입연산을 하면 복사를 해 버리는데

SmartPointer을 이용하면 기존의 객체가 삭제되지 않고 유지되어 성능과 편리성이 향상됩니다.

C++자체에 이런 기능이 있긴 하지만 그냥 구현해봤습니다. C++ 11 버전 이하에서도 사용 가능합니다.


대입연산(리턴 포함)과 Thread에 전달또한 가능합니다.(예제소스 참조)


Windows/Linux 지원합니다.


Windows용 예제소스 : 


SmartPointer 소스

JsSmartPointer.zip


* 2016-11-15 수정

 - Non thread-safe 버전 추가 (SmartPointerNTS.h)

 - Thread Local Storage 사용하지 않도록 변경(Windows에서 몇개 지원하지 않아서 많이 사용하면 문제발생해서..)


예제소스

JsSmartPointerTest.cpp



언제나 그렇듯 라이센스는 MIT License이므로 자유롭게 사용할 수 있습니다.

공유 시 원작자 표시를 해주세요~^^


* 2016-11-03 수정사항

Thread-safe하게 수정하였습니다.

반응형

댓글