std::from_range, std::from_range_t
cppreference.net에서 가져옴
| 헤더 <ranges>
|
||
struct from_range_t { explicit from_range_t() = default; };
|
(C++23부터) | |
inline constexpr std::from_range_t from_range {};
|
(C++23부터) | |
std::from_range는 적합한 컨테이너의 생성자에 전달하여 포함된 멤버가 범위로부터 생성됨을 나타낼 수 있는 모호성 제거 태그입니다.
해당 유형 std::from_range_t은 의도된 태그와 일치시키기 위해 생성자의 매개변수 목록에 사용될 수 있습니다.
표준 라이브러리
다음 표준 라이브러리 타입들은 생성자에서
std::from_range_t
타입을 사용합니다:
컨테이너 라이브러리 | |
(C++23) |
범위에서 vector을(를) 생성합니다 ( std::vector<T,Allocator>의 공개 멤버 함수)
|
(C++26) |
범위에서 inplace_vector을(를) 생성합니다 ( std::inplace_vector<T,N>의 공개 멤버 함수)
|
(C++26) |
범위에서 hive을(를) 생성합니다 ( std::hive<T,Allocator>의 공개 멤버 함수)
|
(C++23) |
범위에서 deque을(를) 생성합니다 ( std::deque<T,Allocator>의 공개 멤버 함수)
|
(C++23) |
범위에서 forward_list을(를) 생성합니다 ( std::forward_list<T,Allocator>의 공개 멤버 함수)
|
(C++23) |
범위에서 list을(를) 생성합니다 ( std::list<T,Allocator>의 공개 멤버 함수)
|
(C++23) |
범위에서 set을(를) 생성합니다 ( std::set<Key,Compare,Allocator>의 공개 멤버 함수)
|
(C++23) |
범위에서 map을(를) 생성합니다 ( std::map<Key,T,Compare,Allocator>의 공개 멤버 함수)
|
(C++23) |
범위에서 multiset을(를) 생성합니다 ( std::multiset<Key,Compare,Allocator>의 공개 멤버 함수)
|
(C++23) |
범위에서 multimap을(를) 생성합니다 ( std::multimap<Key,T,Compare,Allocator>의 공개 멤버 함수)
|
(C++23) |
범위에서 unordered_set을(를) 생성합니다 ( std::unordered_set<Key,Hash,KeyEqual,Allocator>의 공개 멤버 함수)
|
(C++23) |
범위에서 unordered_map을(를) 생성합니다 ( std::unordered_map<Key,T,Hash,KeyEqual,Allocator>의 공개 멤버 함수)
|
(C++23) |
범위에서 unordered_multiset을(를) 생성합니다 ( std::unordered_multiset<Key,Hash,KeyEqual,Allocator>의 공개 멤버 함수)
|
(C++23) |
범위에서 unordered_multimap을(를) 생성합니다 ( std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator>의 공개 멤버 함수)
|
(C++23) |
범위에서 priority_queue을(를) 생성합니다 ( std::priority_queue<T,Container,Compare>의 공개 멤버 함수)
|
(C++23) |
범위에서 queue을(를) 생성합니다 ( std::queue<T,Container>의 공개 멤버 함수)
|
(C++23) |
범위에서 stack을(를) 생성합니다 ( std::stack<T,Container>의 공개 멤버 함수)
|
(C++23) |
범위에서 flat_set을(를) 생성합니다 ( std::flat_set<Key,Compare,KeyContainer>의 공개 멤버 함수)
|
(C++23) |
범위에서 flat_map을(를) 생성합니다 ( std::flat_map<Key,T,Compare,KeyContainer,MappedContainer>의 공개 멤버 함수)
|
(C++23) |
범위에서 flat_multiset을(를) 생성합니다 ( std::flat_multiset<Key,Compare,KeyContainer>의 공개 멤버 함수)
|
(C++23) |
범위에서 flat_multimap을(를) 생성합니다 ( std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>의 공개 멤버 함수)
|
문자열 라이브러리 |
|
|
(C++23)
|
범위로부터
basic_string
을 생성함
(
std::basic_string<CharT,Traits,Allocator>
의 public 멤버 함수)
|
참고 사항
| 기능 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | 컨테이너 호환 범위 에서 생성하기 위한 태그 생성자 |
예제
이 코드 실행
#include <cassert> #include <string> int main() { #ifdef __cpp_lib_containers_ranges auto const range = {0x43, 43, 43}; std::string str{std::from_range, range}; // 태그된 생성자 사용 assert(str == "C++"); #endif }
참고 항목
|
인-플레이스 생성 태그
(태그) |
|
|
범위의 요소들이 정렬되어 있음을 나타냄 (유일성은 요구되지 않음)
(태그) |
|
|
(C++23)
|
범위의 요소들이 정렬되어 있고 유일함을 나타냄
(태그) |
|
(C++23)
|
입력 범위로부터 새로운 비-뷰 객체를 생성함
(함수 템플릿) |