C 17의 새로운 기능
C 17의 기능 개발이 완료된 후 몇 가지 새로운 언어 기능과 라이브러리가 추가되었습니다.
언어 기능:
-
향상된 템플릿 사용:
- 클래스 템플릿에 대한 템플릿 인수 추론
- 템플릿이 있는 모든 유형의 값
-
Lambda 향상:
- constexpr 람다 소개
- 캡처 기능 이것에 Lambdas
-
속성:
- [[fallthrough]], [[nodiscard]와 같은 새로운 속성 도입 ], 그리고 [[maybe_unused]]
-
구문 정리:
- 인라인 변수
- 간소화된 네임스페이스 구문: 네임스페이스 A::B
- 투척 금지 표현식: throw() 및 noException(true)
-
제어 흐름 개선:
- 값 압축 해제를 위한 구조적 바인딩
- 흐름 향상을 위한 if(init; 조건) 및 스위치(init; 조건) control
- 일반화된 범위 기반 for 루프
- 조건부 컴파일을 위한 if constexpr
-
기타 주목할만한 기능:
- 16진수 부동 소수점 리터럴
- 과도하게 정렬된 데이터에 대한 동적 메모리 할당
- 복사 제거 보장
- 표현식에 대한 고정 평가 순서
- 열거형의 직접 목록 초기화
- 앞으로의 발전을 보장합니다. 스레드
라이브러리 추가:
데이터 유형:
- std ::다양한 값을 나타내는 변형 유형
- 선택적 값을 나타내는 std::선택 사항
- 복사할 수 없는 유형을 포함하여 모든 유형의 값을 나타내는 std::any
- 효율적인 처리를 위한 std::string_view 유형 없이 데이터를 표현하기 위한 문자열 참조
- std::byte 정보
호출 가능 처리:
- 일반 호출 가능 호출의 경우 std::invoke
- 튜플 기반의 경우 std::apply 호출 가능 호출
- std::make_from_tuple 튜플에서 객체 구성
- is_invocable 및 관련 특성 소개
파일 시스템 라이브러리:
새로운 알고리즘:
- for_each_n, Reduce,Transform_reduce 등
스레딩 개선 사항:
- 더 효율적인 멀티 스레드 액세스를 위한 std::shared_mutex 도입
- 원자적 보장 및 하드웨어 간섭 크기 감지
도서관 기초 TS 추가 사항:
- 검색 알고리즘(alg.search)
- 다형성 할당자(pmr)
컨테이너 개선 사항:
- 효율적인 컨테이너를 위한 try_emplace 및 insert_or_sign 삽입
- 맵, 세트 및 정렬되지 않은 컨테이너에 대한 접합
- 문자열에 대한 비상수 데이터() 액세스
스마트 포인터:
- 수정 및 변경 사항 Unique_ptr
- 공유 포인터 관리를 위한 Weak_from_this 소개
기타:
- 대신 C11 사용 표준에 대한 C99 library
- 향후 표준 라이브러리를 위해 예약된 std[0-9] 네임스페이스
- 다양한 유틸리티 함수(파괴, 초기화되지 않음_***)
- 특수 수학 함수 노출
- std::clamp, std::gcd 및 소개 std::lcm
- std::uncaught_Exceptions
- std::as_const, std::bool_constant 및 다양한 템플릿 유틸리티를 포함한 예외 처리 개선
- 개선된 std::chrono library
- 부울 연산자 소개 (std::conjunction, std::disjunction, std::negation)
- std 내 noException 사용 규칙
사용되지 않는 기능:
- 일부 C 라이브러리 제거, , result_of 등
위 내용은 C 17에 도입된 주요 언어 및 라이브러리 기능은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!