#12. [C++ 코딩 패턴] 타입에 기반한 코딩 계약(작성중)
스마트 포인터로 인자의 의미를 선언하는 방법 리턴 선언 방법
스마트 포인터로 인자의 의미를 선언하는 방법 리턴 선언 방법
< 만 구현하고 상속
if () 로 사전검사
소유권 이전을 할 것인지, 깊은 복제를 할 것인지, 자원을 공유할 것인지, 유일한 자원을 사용할 것
데이터 오버런(overrun) 및 언더런(underrun) 등 잘못된 힙 사용을 탐지하기 위해 탐지용 byte를 추가로 할당하는 경우(진단 참고)
동적 할당 메모리의 실제 사용에 관한 통계 정보를 수집하는 경우(개체 수명 로그 참고)
할당 및 해제의 효율을 향상시키기 위해 동적 메모리 오버헤드를 줄이고 메모리 관리를 직접 수행하는 경우(메모리 풀)
1 2 3 4 5 6 7 8 9 // 복사 생성과 복사 대입 연산을 할 수 없는 개체 class Uncopyable { protected: Uncopyable() {} // 상속해서만 사용 가능 ~Uncopyable() {} private: Uncopya...
1 2 3 4 5 6 7 8 // 스택만 할당할 수 있는 개체 class OnlyStackAssignable { protected: OnlyStackAssignable() {} // 상속해서만 사용 가능 ~OnlyStackAssignable() {} private:...
논리적으로는 데이터를 얻어오는 상수 멤버 함수이나, 실질적으로는 멤버 변수를 수정하는 함수가 있습니다. 주로 지연 생성이나 캐쉬를 구현하는 경우에 필요합니다.
new시 오류 발생시 처리하는 new_handler를 만들 수 있습니다.
RAII(Resource Acquisition Is Initialization)는 자원 획득은 초기화이다 라는 뜻입니다.