Offcanvas

개발자

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

2020.09.11 Paul Krill  |  InfoWorld
모듈(modules)과 코루틴(coroutines) 등이 추가된 C++ 언어 업그레이드가 연말 이전에 출시될 예정이다. 

지난 9월 4일(현지 시각) C++ 20이 ISO로부터 최종 기술 승인을 받았다. 올해 말에 정식 출시될 계획이다. 이번 버전에는 모듈, 코루틴 등 새롭고 다양한 기능들이 추가됐다. 
 
ⓒ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
 
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.