Named Requirements
From cppreference.net
<
cpp
이 페이지에 나열된 명명된 요구사항(named requirements) 은 C++ 표준의 규범적 텍스트에서 표준 라이브러리의 기대 사항을 정의하기 위해 사용되는 명명된 요구사항입니다.
라이브러리 템플릿이 이러한 요구 사항을 충족하는 템플릿 인자로 인스턴스화되도록 보장하는 책임은 프로그래머에게 있습니다. 이를 지키지 않으면 매우 복잡한 컴파일러 진단 메시지가 발생할 수 있습니다.
이러한 요구 사항 중 일부는 C++20에서 concepts 언어 기능을 사용하여 공식화되었습니다.
기본 |
||
|
해당 타입의 객체가 기본 생성될 수 있음을 명시함
(명명된 요구 사항) |
||
|
(C++11)
|
해당 타입의 객체가 rvalue로부터 생성될 수 있음을 명시함
(명명된 요구 사항) |
|
|
해당 타입의 객체가 lvalue로부터 생성될 수 있음을 명시합니다
(명명된 요구 사항) |
||
|
(C++11)
|
해당 타입의 객체가 rvalue로부터 할당될 수 있음을 명시함
(명명된 요구 사항) |
|
|
해당 타입의 객체가 lvalue로부터 할당될 수 있음을 명시합니다
(명명된 요구 사항) |
||
|
해당 타입의 객체가 파괴될 수 있음을 명시함
(명명된 요구 사항) |
||
타입 속성 |
||
|
참고: 표준은 이 하위 범주에 지정된 이름의 명명된 요구사항을 정의하지 않습니다.
이들은 핵심 언어에 의해 정의된 유형 범주입니다. 일관성을 위해서만 명명된 요구사항으로 여기에 포함되었습니다. |
||
|
배열 타입이나 클래스 타입이 아닌 객체 타입
(명명된 요구사항) |
||
|
(C++20에서 사용 중단됨)
|
POD (Plain Old Data) 타입, C 언어와 호환 가능
struct
(명명된 요구 사항) |
|
|
(C++11)
|
이러한 타입의 객체들은 기본 바이트를 복사한 후에도 그 값들을 유지할 수 있습니다
(명명된 요구 사항) |
|
|
(C++11)
(C++26에서 사용 중단됨)
|
이 유형의 객체들은 사소하게 생성되고 복사될 수 있음
(명명된 요구 사항) |
|
|
(C++11)
|
이 타입들은 다른 프로그래밍 언어로 작성된 코드와의 통신에 유용합니다
(명명된 요구사항) |
|
|
이 유형의 객체들은 암묵적으로 생성될 수 있으며, 그 수명이 암묵적으로 시작될 수 있습니다
(명명된 요구 사항) |
||
라이브러리 전체 |
||
|
불린 연산 (
operator
&&
,
operator
||
, 및
operator
!
)이 일반적인 의미론을 가짐
(명명된 요구 사항) |
||
operator==
는 동치 관계입니다
(명명된 요구 사항) |
||
operator<
는 엄격한 약 순서 관계입니다
(명명된 요구 사항) |
||
|
비한정 비멤버 함수 호출
swap
(
)
로 교환 가능
(명명된 요구사항) |
||
|
(C++11)
|
LegacyIterator
를 역참조했을 때
Swappable
타입을 반환하는
(명명된 요구사항) |
|
|
(C++11)
|
null 값을 지원하는 포인터와 유사한 타입
(명명된 요구 사항) |
|
|
(C++11)
|
서로 다른 값을 가진 입력에 대해 동일한 출력을 낼 확률이 낮은
FunctionObject
(명명된 요구 사항) |
|
|
할당 정보를 포함하는 클래스 타입
(명명된 요구 사항) |
||
|
함수 호출 구문으로 호출할 수 있는 객체
(명명된 요구 사항) |
||
|
호출 연산이 정의된 타입
(명명된 요구 사항) |
||
|
인자를 수정하지 않고 하나의 인자에 대해
bool
로 변환 가능한 값을 반환하는
FunctionObject
(명명된 요구사항) |
||
|
두 인자를 수정하지 않고
bool
로 변환 가능한 값을 반환하는
FunctionObject
(명명된 요구 사항) |
||
|
순서 관계를 설정하는
BinaryPredicate
(명명된 요구사항) |
||
컨테이너 |
|
|
반복자를 사용하여 요소 접근이 가능한 데이터 구조
(명명된 요구 사항) |
|
|
양방향 반복자를 사용하는 컨테이너
(명명된 요구 사항) |
|
|
(C++11)
|
할당자를 사용하는 컨테이너
(명명된 요구 사항) |
|
선형으로 저장된 요소를 가진 컨테이너
(명명된 요구사항) |
|
|
(C++17)
|
인접한 메모리 주소에 요소가 저장된 컨테이너
(명명된 요구 사항) |
|
키와 연관시켜 요소를 저장하는 컨테이너
(명명된 요구사항) |
|
|
(C++11)
|
키와 연관시켜 버킷에 요소를 저장하는 컨테이너
(명명된 요구 사항) |
컨테이너 요소 |
|
|
(C++11)
|
요소가 초기화되지 않은 저장 공간에서 기본 생성될 수 있음
(명명된 요구 사항) |
|
(C++11)
|
요소가 초기화되지 않은 저장소에서 복사 생성될 수 있음
(명명된 요구 사항) |
|
(C++11)
|
요소가 초기화되지 않은 저장소에서 이동 생성될 수 있음
(명명된 요구 사항) |
|
(C++11)
|
요소가 초기화되지 않은 저장 공간에서 생성될 수 있음
(명명된 요구 사항) |
|
(C++11)
|
요소가 할당자를 사용하여 파괴될 수 있음
(명명된 요구 사항) |
Iterator |
|
|
일부 데이터 구조 내의 데이터에 접근하기 위한 일반적인 개념
(명명된 요구 사항) |
|
|
데이터를 읽는 데 사용할 수 있는 반복자
(명명된 요구 사항) |
|
|
데이터를 쓰는 데 사용할 수 있는 반복자
(명명된 요구 사항) |
|
|
데이터를 여러 번 읽는 데 사용할 수 있는 반복자
(명명된 요구 사항) |
|
|
증가와 감소가 모두 가능한 반복자
(명명된 요구 사항) |
|
|
상수 시간에 이동할 수 있는 반복자
(명명된 요구 사항) |
|
|
(C++17)
|
연속적으로 할당된 요소에 대한 반복자
(명명된 요구 사항) |
|
(C++20)
|
상수 표현식 평가 중에 사용할 수 있는 반복자
(명명된 요구사항) |
스트림 I/O 함수 |
|
|
선행 공백 문자를 건너뛰지 않고 처리된 문자 수를 계산하는 스트림 입력 함수
(명명된 요구 사항) |
|
|
선행 공백을 건너뛰는 스트림 입력 함수
(명명된 요구 사항) |
|
|
기본 스트림 출력 함수
(명명된 요구 사항) |
|
|
오류 발생 시 failbit를 설정하고 스트림에 대한 참조를 반환하는 스트림 출력 함수
(명명된 요구 사항) |
|
포매터 |
|
|
(C++20)
|
주어진 서식 인수 타입과 문자 타입에 대한 서식 작업을 추상화함
(명명된 요구 사항) |
|
(C++20)
|
포매팅 라이브러리
에서 사용되는 함수들을 정의합니다
(명명된 요구 사항) |
난수 생성 |
|
|
(C++11)
|
정수 시퀀스를 소비하여 32비트 부호 없는 값들의 시퀀스를 생성함
(명명된 요구사항) |
|
(C++11)
|
균일 분포된 무작위 부호 없는 정수를 반환함
(명명된 요구사항) |
|
(C++11)
|
시드에 의해 정의되는 결정론적
UniformRandomBitGenerator
(명명된 요구 사항) |
|
(C++11)
|
다른
RandomNumberEngine
의 출력을 변환하는
RandomNumberEngine
(명명된 요구사항) |
|
(C++11)
|
주어진 수학적 확률 밀도 함수에 따라 분포된 난수를 반환합니다
(명명된 요구 사항) |
동시성 |
|
|
(C++11)
|
실행 에이전트(즉, 스레드)에 대한 배타적 소유권 의미론을 제공함
(명명된 요구 사항) |
|
(C++11)
|
시도된 잠금 획득을 지원하는
BasicLockable
(명명된 요구 사항) |
|
(C++11)
|
시간 제한 잠금 획득을 지원하는
Lockable
(명명된 요구사항) |
|
(C++14)
|
실행 에이전트(즉, 스레드)에 대한 공유 소유권 의미론을 제공함
(명명된 요구 사항) |
|
(C++14)
|
시간 제한 잠금 획득을 지원하는
SharedLockable
(명명된 요구 사항) |
|
(C++11)
|
데이터 경쟁과 순차적 일관성 동기화로부터 보호하는
Lockable
(명명된 요구 사항) |
|
(C++11)
|
데이터 경쟁과 순차적 일관성 동기화를 방지하는
TimedLockable
(명명된 요구 사항) |
|
(C++17)
|
공유 소유권 의미론을 지원하는
Mutex
(명명된 요구 사항) |
|
(C++14)
|
공유 소유권 의미론을 지원하는
TimedMutex
(명명된 요구 사항) |
범위 |
|
|
(C++20)
|
FunctionObject
가
viewable_range
와 추가 인수들로부터
범위 어댑터
를 생성하는 객체
(명명된 요구 사항) |
|
(C++20)
|
파이프 연산자를 지원하는
FunctionObject
(명명된 요구사항) |
다차원 뷰 사용자 지정 |
|
|
(C++23)
|
다차원 인덱스의 매핑을 제어합니다
mdspan
(명명된 요구사항) |
|
(C++23)
|
LayoutMapping
요구 사항을 충족하는 정책
(명명된 요구 사항) |
|
(C++23)
|
mdspan
에서 데이터 핸들에 대한 접근을 제어하는 정책
(명명된 요구 사항) |
기타 |
|
|
(C++11)
|
타입의 속성을 설명함
(명명된 요구 사항) |
|
(C++11)
|
두 타입 간의 관계를 설명함
(명명된 요구사항) |
|
(C++11)
|
타입의 속성을 수정함
(명명된 요구 사항) |
|
(C++11)
|
지속 시간, 시간 점, 그리고 현재 시간 점을 얻는 함수를 집합적으로 포함
(명명된 요구 사항) |
|
(C++11)
|
예외를 던지지 않는
Clock
(명명된 요구사항) |
|
문자 타입을 위한 타입과 함수를 정의함
(명명된 요구 사항) |
|
|
bitset, 정수형, 또는 열거형
(명명된 요구사항) |
|
|
초기화가 효과적으로 할당과 동일한 타입
(명명된 요구사항) |
|
|
(C++11)
|
정규 표현식 라이브러리에서 사용되는 타입과 함수를 정의합니다
regular expressions library
(명명된 요구사항) |
|
(C++11)
|
constexpr 생성자를 가지는 타입
(명명된 요구 사항) |
|
이 섹션은 불완전합니다
이유: 다른 누락된 요구사항이 있습니까? |