C++/News

프로그래밍 언어 C++20 이란? (2020년)

yum-yum_IT 2023. 12. 23.
반응형

안녕하세요.

오늘의 소재는 프로그래밍 언어 C++20을 소개해 드리려고 합니다.

 

1. C++20 이란?

 -> C++ 프로그래밍 언어의 표준 사양으로, 2020년에 발표되었습니다. 
 -> 이 버전은 C++17 이후의 표준으로, 많은 새로운 기능과 개선 사항을 포함하고 있습니다. C++20은 C++의 현대화를 계속 진행하면서 프로그래밍의 용이성, 효율성, 유지보수성을 향상시키는 데 중점을 두었습니다.

 

2. C++ 20 장점은 무엇이 있을까?

 2.1 컨셉 (Concepts)

 : 컨셉을 통해 템플릿 인자에 대한 요구사항을 명확하게 정의할 수 있게 되어, 코드의 가독성과 오류 메시지의 명확성이 향상되었습니다.

컨셉 (Concepts)

 

 2.2 모듈 (Modules)

 : 헤더 파일과 달리 모듈은 컴파일 시간을 현저히 줄여주며, 매크로 충돌과 같은 문제를 방지할 수 있습니다.

모듈 (Modules)

 

 2.3 범위 기반 for 문 확장 (Range-based for loop extensions)

 : 범위 기반 for 문이 확장되어, 루프 변수를 쉽게 조작할 수 있게 되었습니다.

범위 기반 for 문 확장 (Range-based for loop extensions)

 

 2.4 코루틴 (Coroutines)

 : 비동기 프로그래밍과 지연 계산을 위한 코루틴을 지원합니다.

코루틴 (Coroutines)

 

 2.5 표준 라이브러리 개선

 : <span>, <ranges>, <bit> 등 새로운 헤더가 추가되어 다양한 기능을 제공합니다.

표준 라이브러리 개선

 

 2.6 초기화 리스트를 사용한 집계 초기화 개선

 : 집계 타입의 초기화가 더욱 유연해졌습니다.

초기화 리스트를 사용한 집계 초기화 개선 (Designated initializers)

 

 2.7 람다 개선

 : 람다 표현식에서 캡처 기능이 확장되어 더욱 강력해졌습니다.

람다 개선 (Lambda improvements)

 

3. C++ 20 단점은 무엇이 있을까?

 3.1 복잡성 증가

 : C++20에는 개념, 범위, 모듈과 같은 여러 가지 새로운 기능이 추가되었습니다. 이러한 기능은 특히 익숙하지 않은 사용자에게는 배우고 사용하기 어려울 수 있습니다. 예를 들어 개념은 유형에 대한 요구 사항을 지정하는 방법입니다. 이는 코드가 유형에 안전한지 확인하는 데 유용할 수 있지만 이해하고 사용하기 어려울 수도 있습니다.

 

 3.2 컴파일러 지원

: C++20에 대한 컴파일러 지원은 아직 초기 단계입니다. 모든 컴파일러가 새로운 기능을 완벽하게 지원하는 것은 아니며 지원하는 컴파일러에는 버그가 있을 수 있습니다. 이로 인해 프로덕션에서 C++20 코드를 사용하기가 어려워질 수 있습니다. 예를 들어 Clang 컴파일러는 C++20을 훌륭하게 지원하지만 Microsoft Visual C++ 컴파일러는 아직 전체 지원을 제공하지 않습니다.

 

 3.3 기존 코드와의 호환성

 : C++20의 새로운 기능 중 일부는 이전 코드와 호환되지 않습니다. 즉, C++20 기능을 사용하려면 기존 코드 중 일부를 다시 작성해야 할 수도 있습니다. 예를 들어 C++11의 이동 의미 체계 기능은 이전 복사 및 교환 관용구를 사용하는 코드와 호환되지 않습니다.

 

 3.4 학습 자료 부족

 : 이전 버전의 언어만큼 C++20에 사용할 수 있는 책, 자습서 및 기타 리소스가 많지 않습니다. 이로 인해 새로운 기능을 배우기가 어려울 수 있습니다. 예를 들어, C++11에 관한 좋은 책은 많지만 C++20에 관한 좋은 책은 많지 않습니다.

 

 

C++20 버전에 대해서 설명을 해보았습니다.

감사합니다.

반응형

댓글