How C++ flow?

C++20에 대한 윤곽이 잡히고 있다. C++은 어떻게 변화해가고 있는지 살펴보자.

C++ 표준의 역사

우리가 흔히 이야기하는 C++은 C++03이다. C++은 1983년도에 처음 모습을 드러내었고 1998년에 첫 표준화인 C++98을 거쳐, 2003년도에 버그들을 수정하여 C++03가 나왔다.

이후 다른 언어라고까지 표현되는 Modern C++은 2011년도에 표준화된 C++11부터를 나타내며, 마이너 업데이트인 C++14를 포함한다. Modern C++ 이후부터는 3년마다 새로운 표준을 내놓는 ‘기차 모델’을 따른다.

아래의 그림의 초록색은 TS(Technical Specification)을 나타낸다. TS가 충분히 논의되고 합의에 이르면 다음 버전에 포함되는데, 이를 트렁크에 포함되었다고 표현한다. 아래의 파랜색은 트렁크를 나타낸다.

cpp pipeline

C++11

Modern C++이라 표현되는 C++11은 thread, type_traits를 포함하여 무려 13개의 헤더가 추가되었다. 대표적인 새로운 기능은 move, lambda expression, rvalue reference, smart pointer이며 이 외에도 중요한 문법적 요소들이 많이 추가 되었다.

C++17

C++17은 새로운 에러처리 방식인 optional부터 filesystem등 8개의 헤더가 추가 되었다. 새로운 헤더뿐 아니라 문법적 요소를 포함한 새로운 기능들이 추가되었다. 아래는 그 중 몇가지를 선정하여 나열한 것이다.

References