레거시 C++ STL

#2. [레거시 C++ STL] 템플릿

5 분 소요

템플릿은 템플릿 인스턴스화 하기 전에는 코드를 생성하지 않는다. 클래스, 함수, 멤버 함수, 중첩 클래스를 템플릿으로 만들 수 있다.

#3. [레거시 C++ STL] 템플릿 특수화, 부분 특수화

6 분 소요

일반화 프로그래밍에서의 다형적 동작을 위해 템플릿 특수화, 템플릿 부분 특수화, 함수 템플릿 특수화, 함수 오버로딩을 이용하라. 함수 템플릿을 정의할때 함수 템플릿 오버로딩과 함수 템플릿 특수화의 순서를 지켜라.

#8. [레거시 C++ STL] pair

최대 1 분 소요

모던 C++ (C++11~) tuple이 추가되어 다수의 요소를 관리할 수 있는 데이터 전달용 개체를 좀 더 간편하게 만들 수 있습니다. (C++17~) 구조화된 바인딩이 추가되어 배열, pair, tuple, 클래스등의 내부 요소나 멤버 변수에 쉽게 접근...

#9. [레거시 C++ STL] 컨테이너

4 분 소요

삽입/삭제 성능, 검색 성능, 노드 구성 용량 부하를 검토하여 최적의 컨테이너를 선택하라. 컨테이너의 변경이 용이하도록 코딩하라. 컨테이너 종류나 사용하는 알고리즘에 따라 복사 생성자, 복사 대입 연산자, 비교 연산자를 구현하라.

#12. [레거시 C++ STL] vector

6 분 소요

swap()을 이용하여 vector가 할당한 메모리 영역을 해제할 수 있다. vector<bool>은 사용하지 마라.

#13. [레거시 C++ STL] 할당자(Allocator)

2 분 소요

모던 C++ (C++17~) polymorphic_allocator가 추가되어 할당시 런타임 다형성을 지원합니다. 메모리 리소스를 사용하여 메모리 풀을 손쉽게 만들 수 있습니다.

#17. [레거시 C++ STL] 문자열

6 분 소요

string과 wstring은 public Non-Virtual 소멸자이므로 상속하여 재구현 하지 마라. 수정될 필요가 없는 문자열 데이터는 const char* 나 const wchar_t*로 관리하라.(배열이나 string, wstring을 쓰면 복제된다....

#19. [레거시 C++ STL] 템플릿 메타 프로그래밍

12 분 소요

모던 C++ (C++11~) constexpr이 추가되어 컴파일 타임 프로그래밍이 강화됐습니다. (C++11~) static_assert()가 추가되어 컴파일 타임 진단이 가능해 졌습니다. (C++11~) noexcept 연산자가 추가되어 해당 함수...