[Effective C++] Chapter 9. 그 밖의 이야기들
Table of Contents
이펙티브 C++ 책을 읽고 공부한 노트입니다.
Item 53: 컴파일러 경고를 지나치지 말자 #
- 컴파일러가 경고 메시지를 내지 않고 컴파일 되는 코드를 만들자.
Item 54: TR1을 포함한 표준 라이브러리 구성요소와 편안한 친구가 되자 #
C++98의 표준 라이브러리 주요 구성요소 #
- 표준 템플릿 라이브러리(Standard Template Library: STL)
iostream
- 국제화 지원
- 수치 처리 지원
- 예외 클래스 계통
- C89의 표준 라이브러리
TR1의 주요 구성요소 #
- TR1(1차 기술 보고서: Technical Report 1)은 C++ 표준의 차기 버전인 C++0x에 추가될 라이브러리다.
- TR1의 구성요소는 총 14개이며,
std::tr1
네임스페이스 안에 들어 있다.
- 스마트 포인터
tr1::function
tr1::bind
- 해시 테이블(hash table)
- 정규 표현식(regular expression)
- 튜플(tuple)
tr1::array
tr1::mem_fn
tr1::reference_wrapper
- 난수 발생
- 특수 용도의 수학 함수
- C99 호환성 확장 기능
- 타입 특성정보(type traits)
tr1::result_of
- TR1은 단순히 문서일 뿐이다. TR1의 기능을 사용하기 위해서는 명세를 구현한 코드를 구해야 한다. 그 중에서는 부스트가 가장 좋은 자원이다.
Item 55: Boo자유친! 부스트를 늘 여러분 가까이에 #
- 부스트의 장점
- C++ 표준화 위원회와 밀접하고 영향력 있는 관계를 유지하고 있다.
- 라이브러리 승인 과정이 동료 심사를 통해 이루어진다.
- 부스트의 라이브러리 군단
- 문자열 및 텍스트 처리
- 컨테이너
- 함수 객체 및 고차(higher-order) 프로그래밍
- 일반화 프로그래밍
- 템플릿 메타프로그래밍(TMP, Item 48 참고)
- 수학 및 수치 조작
- 정확성 유지 및 테스트
- 자료구조
- 타 언어와의 연동 지원
- 메모리
- CRC 점검, 날짜 및 시간 조작, 파일 시스템 횡단 등