Programming/C/C++

C++ 0x Preview - What Changed?

acidpop 2009. 2. 27. 22:18
반응형

C++ 표준 재정위원회에서 근 10년만에 c++의 표준을 다시 재정의 하려 한다.

새 기능들에 대해 하나씩 써보려한다.

회사 내에서 기술 세미나를 발표하면서 c++ 0x 에 대해 진행을 해본 내용을 토대로 하나씩 써보겠다.



C++ 0x 는 크게 세 분류로 나누어서 변화가 일어났다.

1. 언어적인 유용성이 개선 되었다.

- 리스트 초기화를 지원한다.
- type 추정을 지원한다. (auto 키워드를 뜻하는것 같다)
- 범위 기반 for 루프를 지원한다.
- 람다 표현식을 지원한다.
- Null Pointer 의 상수화가 추가 되었다.(nullptr 키워드인것 같다)
- 템플릿에 대한 typedef 이 지원된다. (using 키워드를 이용한 방법을 말한다)

2. 언어의 기능적인 향상이 일어났다.

- 템플릿에 가변 인수가 가능하다.
- New String Literals 가 추가 되었다.
- Multi Tasking에 맞는 메모리 모델 구조를 재정의 하는 중이다.(아직 기술문서에 안보임..)
- Thread Local Storage(TLS) 를 지원한다.
- long long int Type 을 지원한다.(이미 많은 컴파일러들이 지원하고 있지만 표준이 아니었기 때문에 이번에 표준으로 정의됐다)
- static_assert 구문이 추가 되었다.
- 명시적인 개체 없이 Class 멤버에 대한 sizeof 를 지원한다.

3. 표준 라이브러리가 확장 되었다.

- Thread 를 표준으로 지정하면서 다루기 쉽게 만들었다.
- tuple 템플릿이 추가 되었다. (pair 의 확장판 이라고 보면 되겠다)
- Hash Tables 가 추가 되었다.(이전 표준에는 없었다)
- 정규 표현식을 지원한다.
- 일반적인 목적으로의 smart pointer 를 지원한다.
- Random 함수의 기능이 좀 더 확장되었다.




전부 다는 아니지만 간략히 추려본 것들이다.

잘 보면 이미 지원을 하고 있는 기능들도 있고 새롭게 추가 되는것도 있다.

C++ 이 98년도에 표준이 나오고 03이 나오긴 했었지만 03은 볼게 없었고..
(버그를 고치는 수준이었다고 했던가..)

이번 글로는 여기까지만 설명을 하고 다른 글들을 통해서 추가된 기능들을 하나 하나씩

살펴 보려고 한다.