이름공간
변수
행위

컨셉 라이브러리 (C++20)

cppreference.com
< cpp

컨셉 라이브러리는 컴파일할 때 템플릿 인자의 유효성 확인을 수행하고 타입의 특성에 기반한 함수 분류 생성에 사용할 수 있는 기초적인 컨셉의 정의를 제공합니다. 이 컨셉들은 프로그램에 동등한 추론을 위한 기반을 제공합니다.

표준 라이브러리의 대부분의 컨셉은 구문 및 의미론적 요구 사항을 강제합니다. 표준 컨셉은 구문 요구사항을 충족하고, 충족 상태에서 의미론적 요구 사항을 (어떤 것이라도) 갖추는 경우 모델화되었다고 할 수 있습니다.

일반적으로, 컴파일러에서는 구문적인 요구사항을 검사할 수 있습니다. 만약 프로그램의 타당성이나 의미가 템플릿 인수의 시퀀스가 컨셉을 모델링하는지 여부와 개념이 충족되지만 모델링되지 않았는지에 달려 있거나, 사용할 때 의미론적 요구사항을 맞추지 못한다면 잘못된 프로그램입니다 no diagnostic required.

Defined in namespace std

목차

핵심 언어 컨셉
<concepts> 헤더에 정의됨.
(C++20)
타입이 다른 타입과 동일하다는 것을 명시합니다
(concept)[edit]
타입이 다른 타입을 상속하여 생성되었음을 명시합니다
(concept)[edit]
타입이 암시적으로 다른 타입으로 변환될 수 있음을 명시합니다
(concept)[edit]
두 개의 타입이 공통의 참조 타입을 공유함을 명시합니다
(concept)[edit]
두 개의 타입이 공통 타입을 공유함을 명시합니다
(concept)[edit]
(C++20)
타입이 정수형(integral) 타입임을 명시합니다
(concept)[edit]
타입이 부호있는 정수형(integral) 타입임을 명시합니다
(concept)[edit]
타입이 부호없는 정수형(integral) 타입임을 명시합니다
(concept)[edit]
타입이 부동소수형(floating-point) 타입임을 명시합니다
(concept)[edit]
타입이 다른 타입에서 할당 가능함을 명시합니다
(concept)[edit]
터압아 교체(swap) 가능하거나 두 타입이 서로 교체(swap) 가능함을 명시합니다
(concept)[edit]
타입의 객체가 소멸 가능함을 명시합니다
(concept)[edit]
해당 타입의 변수가 인자 타입의 집합으로부터 생성되거나 집합으로 묶일 수 있음을 명시합니다
(concept)[edit]
해당 타입의 객체가 기본 생성(default construct)이 가능함을 명시합니다
(concept)[edit]
타입의 객체가 이동 생성이 가능함을 명시합니다
(concept)[edit]
타입의 객체가 복사 생성되었거나 이동 생성되었음을 명시합니다
(concept)[edit]
비교 컨셉
<concepts> 헤더에 정의됨.
타입이 Boolean 컨텍스트로 사용 가능함을 명시합니다
(exposition-only concept)[edit]
연산자 == 가 등가 관계임을 명시합니다
(concept)[edit]
타입에 대한 비교 연산자가 순서에 따른 값을 만들어낼 수 있음을 명시합니다
(concept)[edit]
<compare> 헤더에 정의됨.
연산자 <=> 가 주어진 타입에 대해 일관된 결과값을 만들어냄을 명시합니다
(concept)[edit]
객체 컨셉
<concepts> 헤더에 정의됨.
(C++20)
타입의 객체가 이동 가능하거나 교체(swap) 가능함을 명시합니다
(concept)[edit]
(C++20)
타입의 객체가 복사, 이동, 교체(swap)가 가능함을 명시합니다
(concept)[edit]
타입의 객체가 복사, 이동, 교체(swap), 기본 생성이 가능함을 명시합니다
(concept)[edit]
(C++20)
객체가 규칙적, 다시 말해, semiregular 이고 equality_comparable 함을 명시합니다
(concept)[edit]
호출 가능 컨셉
<concepts> 헤더에 정의됨.
호출 가능한 타입이 주어진 인자(argument)종류의 집합으로 호출될 수 있음을 명시합니다
(concept)[edit]
(C++20)
호출 가능한 타입이 Boolean 서술임을 명시합니다
(concept)[edit]
(C++20)
호출 가능한 타입이 이진(binary) 관계임을 명시합니다
(concept)[edit]
relation이 등가 관계임을 명시합니다
(concept)[edit]
relation이 엄격히 약한 순서(strict weak ordering) 관계에 놓여 있음을 명시합니다
(concept)[edit]

추가 컨셉은 반복자 라이브러리, 알고리즘 라이브러리, 범위 라이브러리에서 찾을 수 있습니다.

close