C++ 20, 최종 기술 승인 획득··· 모듈 및 코루틴 등 추가 - CIO Korea

생성일
Sep 11, 2020 03:43 PM
언어
C++
분야
URL
 
Paul Krill | InfoWorld
모듈(modules)과 코루틴(coroutines) 등이 추가된 C++ 언어 업그레이드가 연말 이전에 출시될 예정이다.
지난 9월 4일(현지 시각) C++ 20이 ISO로부터 최종 기술 승인을 받았다. 올해 말에 정식 출시될 계획이다. 이번 버전에는 모듈, 코루틴 등 새롭고 다양한 기능들이 추가됐다.
notion imagenotion image
ⓒTNS Sofres (CC BY 2.0)
1979년 시스템 프로그래밍을 지원하고자 설계된 C++은 지금도 여전히 중요한 개발 언어다. 2020년 9월 티오베(Tiobe) 인덱스에 따르면 C++은 C, 자바, 파이썬에 이어 4위를 차지했으며, 가장 빠르게 성장하는 언어인 것으로 나타났다. 티오베는 이 언어를 활성화시키는 요인 중 하나로 C++ 20의 스펙을 꼽았다.
C++ 20의 새로운 기능은 다음과 같다.
  • 모듈(Modules). 개발자가 모듈 구성요소를 사용할 수 있도록 지원한다. • 콘셉트(Concepts). 템플릿 요구사항을 지정하고 제네릭 프로그래밍을 지원하는 데 사용된다. 이는 코드 품질을 향상한다. • 동기화 라이브러리(Synchronization library). 세분된 하드웨어 제어 지원을 향상한다. • 개선된 컴파일 시간 연산 • 코루틴(Coroutines). 비선점형(nonpreemptive) 멀티 태스킹에서 사용하기 위해 서브루틴을 일반화한다. 허나 표준 라이브러리의 코루틴에 관한 표준화된 지원은 여전히 미흡하다. 이는 C++ 23에서 지원될 것으로 예상된다. • 범위(Ranges). 요소 범위를 처리할 구성 요소를 제공한다. • 기능 테스트 매크로(Feature test macros). C++ 11 이상 언어 및 라이브러리 기능에 해당하는 매크로 세트를 지원한다. • 룩 업(look-up) 시 미리 계산된 해시값 • 튜플(tuple), 배열(array), 클래스(class), 매개변수 팩(parameter pack) 또는 범위(range)의 각 요소에 대한 명령문의 컴파일 시간 반복을 가능하게 하는 확장 명령문 • std::optional 코드에 관한 모나드 연산(Monadic operations) • 저수준 조작을 위한 암시적(Implicit) 객체 형성 • 빌드 의존성을 결정하는 비-컴파일러 툴을 지원하고자 가져오기 및 모듈의 문맥 감지(context-sensitive) 인식 개선새로운 범위의 알고리즘
C++ 20에서 기대했던 사전 조건, 사후 조건 및 어설션을 지정하기 위한 계약 기능은 목록에 포함되지 않았다. 현재 계약 기능은 C++ 23의 항목으로 표시돼 있지만 해당 릴리스에도 적용되지 않을 가능성이 있다. ciokr@idg.co.kr

관련 컨텐츠