Skip to main content

[Effective C++] Chapter 9. 그 밖의 이야기들

이펙티브 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 점검, 날짜 및 시간 조작, 파일 시스템 횡단 등