On this page
std::from_range, std::from_range_t
Defined in header <ranges> |
||
---|---|---|
|
(since C++23) | |
|
(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 type std::from_range_t
can be used in the constructor's parameter list to match the intended tag.
Standard library
The following standard library types use std::from_range_t
type in their constructors:
Containers library |
|
(C++23)
|
constructs the vector from a range (public member function of std::vector<T,Allocator> ) |
(C++23)
|
constructs the deque from a range (public member function of std::deque<T,Allocator> ) |
(C++23)
|
constructs the forward_list from a range (public member function of std::forward_list<T,Allocator> ) |
(C++23)
|
constructs the list from a range (public member function of std::list<T,Allocator> ) |
(C++23)
|
constructs the set from a range (public member function of std::set<Key,Compare,Allocator> ) |
(C++23)
|
constructs the map from a range (public member function of std::map<Key,T,Compare,Allocator> ) |
(C++23)
|
constructs the multiset from a range (public member function of std::multiset<Key,Compare,Allocator> ) |
(C++23)
|
constructs the multimap from a range (public member function of std::multimap<Key,T,Compare,Allocator> ) |
(C++23)
|
constructs the unordered_set from a range (public member function of std::unordered_set<Key,Hash,KeyEqual,Allocator> ) |
(C++23)
|
constructs the unordered_map from a range (public member function of std::unordered_map<Key,T,Hash,KeyEqual,Allocator> ) |
(C++23)
|
constructs the unordered_multiset from a range (public member function of std::unordered_multiset<Key,Hash,KeyEqual,Allocator> ) |
(C++23)
|
constructs the unordered_multimap from a range (public member function of std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator> ) |
(C++23)
|
constructs the priority_queue from a range (public member function of std::priority_queue<T,Container,Compare> ) |
(C++23)
|
constructs the queue from a range (public member function of std::queue<T,Container> ) |
(C++23)
|
constructs the stack from a range (public member function of std::stack<T,Container> ) |
(C++23)
|
constructs the flat_set from a range (public member function of std::flat_set<Key,Compare,KeyContainer> ) |
(C++23)
|
constructs the flat_map from a range (public member function of std::flat_map<Key,T,Compare,KeyContainer,MappedContainer> ) |
(C++23)
|
constructs the flat_multiset from a range (public member function of std::flat_multiset<Key,Compare,KeyContainer> ) |
(C++23)
|
constructs the flat_multimap from a range (public member function of std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer> ) |
Strings library |
|
(C++23)
|
constructs the basic_string from a range (public member function of std::basic_string<CharT,Traits,Allocator> ) |
Notes
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_containers_ranges |
202202L | (C++23) | Tagged constructors to construct from container compatible range |
Example
#include <cassert>
#include <string>
int main()
{
#ifdef __cpp_lib_containers_ranges
auto const range = {0x43, 43, 43};
std::string str{std::from_range, range}; // uses tagged constructor
assert(str == "C++");
#endif
}
See also
(C++23)
|
constructs a new non-view object from an input range (function template) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/from_range