C++/News

프로그래밍 언어 C++17 이란? (2017년)

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

안녕하세요.

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

1. C++17 이란?

 -> 프로그래밍 언어 C++의 표준 버전 중 하나로, 2017년에 발표되었습니다. 
 -> 이전의 C++14 표준에 이은 개선 사항들을 포함하고 있으며, 더 많은 기능과 편의성을 제공하여 개발자들이 보다 쉽게 코드를 작성하고 유지보수할 수 있도록 도와줍니다.

 

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

     2.1 표준 라이브러리 개선

 -> `<optional>`, `<variant>` 및 `<string_view>` 등 새로운 라이브러리가 추가되어 개발자들이 더욱 풍부한 기능을 사용할 수 있게 되었습니다.

 

     2.2 구조화된 바인딩 (Structured bindings) 

 -> 복합 데이터 구조로부터 여러 값을 한 번에 추출할 수 있게 해줍니다. 

구조화된 바인딩 (Structured bindings)

 

     2.3 if 및 switch문 내에서의 초기화 (Init statements for if and switch)

 -> 조건문 내에서 변수를 선언하고 초기화할 수 있어 코드의 가독성을 향상시킵니다.

if 및 switch문 내에서의 초기화 (Init statements for if and switch)

 

     2.4 인라인 변수 (Inline variables)

 -> 인라인 변수를 사용하면 헤더 파일에 정의된 변수가 여러 번 포함되어도 중복 정의 오류가 발생하지 않습니다.

인라인 변수 (Inline variables)

 

     2.5  폴드 표현식 (Fold expressions)

 -> 폴드 표현식을 사용하여 가변 인자 템플릿의 모든 인자에 대해 연산을 적용할 수 있습니다.

폴드 표현식 (Fold expressions)

 

     2.6 std::optional

 -> 값이 없을 수도 있는 객체를 안전하게 다룰 수 있게 해주며, 값이 없는 상태도 나타낼 수 있습니다.

std::optional

 

     2.7 std::variant

 -> 단일 변수가 안전하게 여러 타입 중 하나의 값을 가질 수 있게 해주는 타입 안전 유니언입니다.

std::variant

 

     2.8 std::string_view

 -> 문자열을 복사하지 않고 참조하는 경량의 비소유(non-owning) 문자열 타입입니다.

std::string_view

 

     2.9 파일 시스템 라이브러리 (Filesystem library)

 -> 파일과 디렉토리에 대한 표준화된 접근 방법을 제공합니다.

파일&nbsp;시스템&nbsp;라이브러리&nbsp;(Filesystem&nbsp;library)

 

 

 

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

     3.1 학습 곡선

 -> 새로운 기능들이 많아져서 초보자가 배우기에 더 복잡하고 어려워질 수 있습니다.

 

     3.2 비호환성

 -> 일부 새로운 기능들은 이전 코드와 호환되지 않을 수 있어, 기존 코드베이스를 업데이트하는 데 어려움이 있을 수 있습니다.

 

     3.3 지원 문제

 -> 모든 컴파일러가 C++17의 모든 기능을 완벽하게 지원하지 않을 수 있으며, 특히 오래된 시스템에서는 최신 컴파일러로 업그레이드하는 것이 어려울 수 있습니다.

 

     3.4 복잡성 증가

 -> 새로운 기능들은 때때로 코드의 복잡성을 증가시킬 수 있으며, 잘못 사용될 경우 유지보수가 어려워지는 코드를 초래할 수 있습니다.

 

 

 

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

감사합니다.

반응형

댓글