|
Range primitives | |||||||
|
Range concepts | |||||||||||||||||||
|
Range factories | |||||||||
|
Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Helper items | |||||||||||||||||
|
Defined in header <ranges> | ||
struct from_range_t{explicit from_range_t()=default;}; | (since C++23) | |
inlineconstexpr std::from_range_t from_range{}; | (since C++23) | |
std::from_range
is a disambiguation tag that can be passed to the constructors of the suitable containers to indicate that the contained member is range constructed.
The corresponding typestd::from_range_t
can be used in the constructor's parameter list to match the intended tag.
Contents |
The following standard library types usestd::from_range_t
type in their constructors:
Containers library | |
(C++23) | constructs thevector from a range(public member function of std::vector<T,Allocator> ) |
(C++26) | constructs theinplace_vector from a range(public member function of std::inplace_vector<T,N> ) |
(C++26) | constructs thehive from a range(public member function of Template:cpp/container/hive/title ) |
(C++23) | constructs thedeque from a range(public member function of std::deque<T,Allocator> ) |
(C++23) | constructs theforward_list from a range(public member function of std::forward_list<T,Allocator> ) |
(C++23) | constructs thelist from a range(public member function of std::list<T,Allocator> ) |
(C++23) | constructs theset from a range(public member function of std::set<Key,Compare,Allocator> ) |
(C++23) | constructs themap from a range(public member function of std::map<Key,T,Compare,Allocator> ) |
(C++23) | constructs themultiset from a range(public member function of std::multiset<Key,Compare,Allocator> ) |
(C++23) | constructs themultimap from a range(public member function of std::multimap<Key,T,Compare,Allocator> ) |
(C++23) | constructs theunordered_set from a range(public member function of std::unordered_set<Key,Hash,KeyEqual,Allocator> ) |
(C++23) | constructs theunordered_map from a range(public member function of std::unordered_map<Key,T,Hash,KeyEqual,Allocator> ) |
(C++23) | constructs theunordered_multiset from a range(public member function of std::unordered_multiset<Key,Hash,KeyEqual,Allocator> ) |
(C++23) | constructs theunordered_multimap from a range(public member function of std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator> ) |
(C++23) | constructs thepriority_queue from a range(public member function of std::priority_queue<T,Container,Compare> ) |
(C++23) | constructs thequeue from a range(public member function of std::queue<T,Container> ) |
(C++23) | constructs thestack from a range(public member function of std::stack<T,Container> ) |
(C++23) | constructs theflat_set from a range(public member function of std::flat_set<Key,Compare,KeyContainer> ) |
(C++23) | constructs theflat_map from a range(public member function of std::flat_map<Key,T,Compare,KeyContainer,MappedContainer> ) |
(C++23) | constructs theflat_multiset from a range(public member function of std::flat_multiset<Key,Compare,KeyContainer> ) |
(C++23) | constructs theflat_multimap from a range(public member function of std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer> ) |
Strings library | |
(C++23) | constructs thebasic_string from a range(public member function of std::basic_string<CharT,Traits,Allocator> ) |
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_containers_ranges | 202202L | (C++23) | Tagged constructors to construct fromcontainer compatible range |
#include <cassert>#include <string> int main(){#ifdef __cpp_lib_containers_rangesautoconst range={0x43,43,43};std::string str{std::from_range, range};// uses tagged constructorassert(str=="C++");#endif}
in-place construction tag (tag)[edit] | |
indicates that elements of a range are sorted (uniqueness is not required) (tag)[edit] | |
(C++23) | indicates that elements of a range are sorted and unique (tag)[edit] |
(C++23) | constructs a new non-view object from an input range (function template)[edit] |