Namespaces
Variants

C++ standard libraries extensions

From cppreference.net

C++ 라이브러리 기본 확장 버전 1, ISO/IEC TS 19568:2015은 C++ 표준 라이브러리를 위한 다음과 같은 새로운 구성 요소들을 정의합니다:

목차

C++17에 포함되지 않음

ISO/IEC TS 19568:2015의 다음 구성 요소들은 C++17에 포함되도록 선택되지 않았습니다.

타입 소거 할당자를 지원하기 위한 기존 클래스들의 수정된 버전

헤더에 정의됨 <experimental/functional>
타입 소거된 할당자를 지원하는 수정된 버전의 std::function
(클래스 템플릿)
헤더에 정의됨 <experimental/future>
타입 소거된 할당자를 지원하는 수정된 버전의 std::promise
(클래스 템플릿)
타입 소거된 할당자를 지원하는 수정된 버전의 std::packaged_task
(클래스 템플릿)

메모리 리소스 어댑터

allocator를 memory_resource 로 변환합니다
(alias template)

일반 유틸리티

헤더에 정의됨 <experimental/utility>
타입 소거를 위한 플레이스홀더 타입 (예: allocator에서 사용)
(클래스)
헤더에 정의됨 <experimental/type_traits>
주어진 인수 타입들로 호출될 때 호출 가능 객체의 암시적 함수 타입을 추론
(클래스 템플릿)

기능 테스트 매크로

헤더 파일에 정의됨 <experimental/optional>
__cpp_lib_experimental_optional
최소 201411 값은 optional 타입이 지원됨을 나타냄
(매크로 상수)
헤더 파일에 정의됨 <experimental/any>
__cpp_lib_experimental_any
최소 201411 값은 any 타입이 지원됨을 나타냄
(매크로 상수)
헤더 파일에 정의됨 <experimental/string_view>
__cpp_lib_experimental_string_view
최소 201411 값은 basic_string_view 템플릿이 지원됨을 나타냄
(매크로 상수)
헤더 파일에 정의됨 <experimental/tuple>
__cpp_lib_experimental_apply
최소 201402 값은 tuple apply() 함수가 지원됨을 나타냄
(매크로 상수)
헤더 파일에 정의됨 <experimental/type_traits>
__cpp_lib_experimental_type_trait_variable_templates
최소 201402 값은 변수 템플릿 타입 특성이 지원됨을 나타냄
(매크로 상수)
__cpp_lib_experimental_invocation_type
최소 201406 값은 호출 타입 특성이 지원됨을 나타냄
(매크로 상수)
헤더 파일에 정의됨 <experimental/functional>
__cpp_lib_experimental_boyer_moore_searching
최소 201411 값은 추가 검색 알고리즘이 지원됨을 나타냄
(매크로 상수)
__cpp_lib_experimental_function_erased_allocator
최소 201406 값은 std::function을 위한 타입 삭제 할당자가 지원됨을 나타냄
(매크로 상수)
헤더 파일에 정의됨 <experimental/future>
__cpp_lib_experimental_promise_erased_allocator
최소 201406 값은 std::promise를 위한 타입 삭제 할당자가 지원됨을 나타냄
(매크로 상수)
__cpp_lib_experimental_packaged_task_erased_allocator
최소 201406 값은 std::packaged_task를 위한 타입 삭제 할당자가 지원됨을 나타냄
(매크로 상수)
헤더 파일에 정의됨 <experimental/memory>
__cpp_lib_experimental_shared_ptr_arrays
최소 201406 값은 shared_ptr 배열이 지원됨을 나타냄
(매크로 상수)
헤더 파일에 정의됨 <experimental/memory_resource>
__cpp_lib_experimental_memory_resources
최소 201402 값은 다형적 메모리 리소스가 지원됨을 나타냄
(매크로 상수)
헤더 파일에 정의됨 <experimental/algorithm>
__cpp_lib_experimental_sample
201402 값은 sample 알고리즘이 지원됨을 나타냄
(매크로 상수)

C++17에 통합됨

ISO/IEC TS 19568:2015의 다음 구성 요소들이 C++17에 포함되었습니다.

optional 객체

헤더 파일에 정의됨 <experimental/optional>
optional 객체 를 나타내는 클래스 템플릿
(클래스 템플릿)

클래스 any

헤더 파일에 정의됨 <experimental/any>
모든 타입의 단일 값을 위한 타입 안전 컨테이너
(클래스)

string_view

헤더 파일에 정의됨 <experimental/string_view>
문자열에 대한 비소유 참조
(클래스 템플릿)

타입 소거 및 다형적 할당자

다형성 할당자와 메모리 리소스

이 섹션의 엔터티들은 std::experimental::pmr 네임스페이스에서 선언됩니다.

메모리 리소스를 캡슐화하는 클래스들을 위한 추상 인터페이스
(클래스)
서로 다른 블록 크기의 풀에서 할당을 관리하는 스레드 안전한 memory_resource
(클래스)
서로 다른 블록 크기의 풀에서 할당을 관리하는 스레드 안전하지 않은 memory_resource
(클래스)
리소스가 파괴될 때만 할당된 메모리를 해제하는 특수 목적의 memory_resource
(클래스)
생성 시 사용된 memory_resource 를 기반으로 런타임 다형성을 지원하는 할당자
(클래스 템플릿)
전역 operator new operator delete 를 사용하여 메모리를 할당 및 해제하는 정적 프로그램 전체 memory_resource 를 반환
(함수)
할당을 수행하지 않는 정적 memory_resource 를 반환
(함수)
기본 memory_resource 를 얻음
(함수)
기본 memory_resource 를 설정
(함수)

다형적 할당자를 사용하는 컨테이너를 위한 편의 별칭

편의 별칭 및 별칭 템플릿 이 표준 라이브러리의 다음 클래스 템플릿들에 대해 다형성 할당자를 사용하는 컨테이너들을 위한 std::experimental::pmr 네임스페이스에서 제공됩니다:

편의 별칭이 제공되는 컨테이너 템플릿 목록

shared_ptr 의 배열 지원

헤더 파일에 정의됨 <experimental/memory>
클래스 설명
배열을 지원하는 수정된 버전의 std::shared_ptr
(클래스 템플릿)
배열을 지원하는 수정된 버전의 std::weak_ptr
(클래스 템플릿)

샘플링 및 검색 알고리즘

헤더 파일에 정의됨 <experimental/algorithm>
시퀀스에서 n개의 임의 요소를 선택함
(함수 템플릿)
Searcher를 시퀀스에 적용함
(함수 템플릿)
헤더 파일에 정의됨 <experimental/functional>
표준 C++ 라이브러리 검색 알고리즘 구현
(클래스 템플릿)
default_searcher를 생성하는 도우미 함수
(함수 템플릿)
Boyer-Moore 검색 알고리즘 구현
(클래스 템플릿)
boyer_moore_searcher를 생성하는 도우미 함수
(함수 템플릿)
Boyer-Moore-Horspool 검색 알고리즘 구현
(클래스 템플릿)
boyer_moore_horspool_searcher를 생성하는 도우미 함수
(함수 템플릿)

일반 유틸리티

헤더 파일에 정의됨 <experimental/tuple>
인수 튜플에 함수를 호출함
(함수 템플릿)

또한, TS는 표준 라이브러리의 다음 타입 트레이트 및 다른 클래스 템플릿들을 위해 수많은 constexpr 변수 템플릿들을 제공합니다:

변수 템플릿이 제공되는 타입 트레이트 및 기타 클래스 템플릿 목록