Thinking Different






C++ 표준의 발전과 역사


C++ 의 탄생은 1983년도로 30년이 넘었지만 최초의 C++ 표준화는 1998년도에 이루어졌습니다. 그 전까지 비공식적으로 개개인이 만든 함수와 모듈로 작성되어 사용되고 발전되어온 것입니다. C++은 최초의 표준이 정해지기까지 7년 동안 21번의 미팅으로 완성되었으며 그 명칭을 c++98로 지정하게 됩니다. 그 후 2003년도에 C++98의 버그들을 정리하여 C++03을 발표합니다. 그 다음에는 8년간 많은 기능들을 추가한 C++11를 2011년도에 발표하였습니다. (C++11에 auto, lamda, nullptr, RValue 등 많은 기능들이 추가되었습니다)


년도C++ 표준Informal name
1998ISO/IEC 14882:1998C++98
2003ISO/IEC 14882:2003C++03
2011ISO/IEC 14882:2011C++11
2014ISO/IEC 14882:2014C++14
2017ISO/IEC 14882:2017C++17
2020Yet to be determinedC++20




C++ 기차 모델 'Train Model' 을 통한 표준화 관리 체계 변화


C++11 발표 시점부터 C++ 표준화 운영 위원회는 (다른 언어들은 빠르고 쉽게 확장 및 표준이 되어 활발하게 사용되어 지는데 c언어는 표준화가 되어 사용자들이 사용되어지기까지 너무 오래걸린다는 단점의 지적들이 있었습니다) 새로운 표준화 관리체계가 필요하다는 점을 느끼며, 3년마다 표준화를 출시하도록 하자는데 동의하게 됩니다. 이를 기차모델 'Train Model' 로 명명하게 됩니다. 이는 3년간 새로운 기능을 개발하며 발표하도록 하며, 3년간의 개발에 실패한다면 그 다음 3년 뒤에 다시 발표하도록 하는 것입니다.




C++20 에서 가져올 변화는


다음 표준인 C++20 에서는 많은 분들이 기다리고 있는 module, 코루틴 등의 강력한 기능들이 표준에 추가될 것으로 보입니다. 특히 모듈의 경우에는 C++ 코딩에서 헤더파일 전방선언에 어려움이 있었던 부분들에 아주 큰 도움이 될 것이라 보여집니다. (visual studio 2017 의 update1 버전에서 module 의 기능을 사용해 볼 수 있습니다)







데니스 매캘리스테어 리치 (1941년 9월 9일 ~ 2011년 10월 12일)