C++의 설계자이며 오리지날 구현자인 Bjarne Stroustrup씨가 최근 C++17의 설계 목표와 실현 될 새 기능에 관한 논의 제기를 목적으로 하는 드래프트 문서를 배포했다. C++17에는 3개의 설계 목표가 있다고 그는 말한다.

- 대규모로 신뢰성 높은 소프트웨어 개발 지원 강화.

- 병행 처리를 위한 고 레벨 모델의 지원 제공.

- 핵심 언어의 간략화.

 

이 목표들 각각에 대하여 Stroustrup씨는 C++17에서 이것을 실현하기 위한 새 기능을 나열하고 있다. 예상 되는 기능 속에서 그가 바람직하다고 생각하는 것은 다음과 같다.

- 모듈. 국소성과 컴파일 시간을 개선한다.

- 계약(contract). 사양의 명시성의 향상.

- 타입 안전한 공용체와 아마도 함수 프로그래밍 스타일에 기초한 패턴 매칭.

- 컨셉(concept).

- 레인지(range).

- 호출 구문의 통일. 사양 정의와 템플릿 라이브러리의 이용을 간략화 한다.

- 루틴. , 재개 가능한 함수.

- SIMD . 현대적인 하드웨어 기능의 활용.

 

한편 Stroustrup씨는 C++17이 어떤 것인지, “언어의 기능이나 표준 라이브러리의 컴포넌트의 수로 그 상세를 판단하는 잘못을 범하지 않도록 경고한다. 중요한 것은 C++14과는 대조적으로 C++17메이저 릴리스가 된다는 점을 이해하는 것이다. 그래서 유저의 언어 사용에 큰 영향을 미친다는 의미에서 적어도 “2개 내지 3개의 주요 기능을 포함해야 한다. 컨셉이나 모듈, 레인지 등은 그 예다.

 

흥미롭게도 그의 문서도 C++17이 어떤 것인가를 분명히 밝히려고 한다. 바람직하지 않는 기능으로서 그는 다음과 같은 것을 구체적으로 꼽는다.

- C++를 근본적으로 다른 언어로 바꾸거나, 혹은 고 수준의 서브 언어를 따로 제공한다.

- “다른 모든 언어에 대한 대응이나 새로운 패러다임을 지원할 목적으로 C++에 신기능을 더 하는 것.

- “가장 요구하는 엄격한 태스크 시스템 프로그래밍을 전제로 언어를 복잡화하거나 언어의 능력을 저해하는 것.


출처: http://www.infoq.com/news/2015/04/stroustrup-cpp17-interview



by 흥배 2015. 6. 2. 08:00