std:: from_range, std:: from_range_t
From 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
を構築する
(
Template:cpp/container/hive/title
の公開メンバ関数)
|
|
(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>
の公開メンバ関数)
|
注記
| 機能テスト マクロ | 値 | 標準 | 機能 |
|---|---|---|---|
__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)
|
入力範囲から新しい非ビューオブジェクトを構築する
(関数テンプレート) |