현 항목이 쓰여진 시점은 C++11(C++0x) 표준이 나오기 이전이다. 따라서 당시에는 C++98이후 C++표준이 2000년대의 한 시점에 공개될 것으로 예상해 C++0x으로 불려 왔으나, 2010년이 되면서 아무리 늦어도 2010년대의 한 시점에 공개될 것으로 예상해 C++1x로 변경되었고 2011년 8월 12일에 들어서야 국제표준으로 확정되면서 C++1x는 최종적으로 C++11이 되었다. (참고 - https://ko.wikipedia.org/wiki/C%2B%2B11) C++ 11에서는 Boost에서 사용되던 기능들이 대거 편입되었다.
C++98의 기존기능에 대해 알아보자.
1. 표준 템플릿 라이브러리(STL)
- Container(vector, string, map ..)
- iterator
- algorithm(find, sort, transform..)
- function object(less, greater ..)
- funcion object adapter(stack, priority_queue, mem_fun, not1 ...)
2. iostream
- 사용자 정의버퍼링, 국제화 기능 가능한 입출력
- cin, cout, cerr, clog
3. 국제화 지원
- 로케일, wchar_t 타입 및 wstring을 쓰면 유니코드 가능
4. 수치 처리 자원
- 복소수(complex) 템플릿, 수치배열(valarray) 템플릿
5. 예외클래스 계통
- 최상위클래스 exception 등
6. C89의 표준 라이브러리
이제 TR1을 통해 명시된 새로운 구성요소 14개에 대해 알아보자.
1. 스마트 포인터
2. tr1::function
3. tr1::bind
4. 해시테이블
5. 정규 표현식
6. 투플
7. tr1::array
8. tr1::mem_fn
9. tr1::reference_wrapper
10. 난수발생
11. 특수 용도의 수학 함수
12. C99 호환석 확장 기능
13. 타입 특성정보
14. tr1::result_of
이것만은 잊지말자
- 최초에 상정된 표준 C++라이브러리의 주요 구성요소는 STL, iostream, 로케일 등이다. 여기에는 C89의 표준 라이브러리도 포함되어 있다.
- TR1이 도입되면서 추가된 것은 스마트 포인터(tr1::shared_ptr 등), 일반화 함수포인터(tr1::function), 해시기반컨테이너, 정규 표현식, 그리고 그외의 10개의 구성요소이다.
- TR1자체는 단순히 명세서일 뿐입니다. TR1의 기능을 사용하기 위해서는 명세를 구현한 코드를 구해야 한다. TR1구현을 구할 수 있는 자료처 중 한군데가 부스트이다.
'책 정리 > Effective C++ 3rd' 카테고리의 다른 글
항목 55. Boo子有親! 부스트를 늘 여러분 가까이에 (0) | 2020.05.12 |
---|---|
항목 53. 컴파일러 경고를 지나치지 말자. (0) | 2020.05.12 |
항목 52. 위치지정 new를 작성한다면 위치치정 delete도 같이 준비하자 (0) | 2020.05.12 |
항목 51. new 및 delete를 작성할 때 따라야 할 기존의 관례를 잘 알아두자 (0) | 2020.05.12 |
항목 50. new a및 delete를 언제 바꿔야 좋은 소리를 들을지를 파악해 두자 (0) | 2020.04.01 |
댓글