std::get(std::tuple)
提供: cppreference.com
ヘッダ <tuple> で定義
|
||
template< std::size_t I, class... Types > typename std::tuple_element<I, std::tuple<Types...>>::type& |
(1) | (C++11以上) (C++14以上ではconstexpr) |
template< std::size_t I, class... Types > typename std::tuple_element<I, std::tuple<Types...>>::type&& |
(2) | (C++11以上) (C++14以上ではconstexpr) |
template< std::size_t I, class... Types > const typename std::tuple_element<I, std::tuple<Types...>>::type& |
(3) | (C++11以上) (C++14以上ではconstexpr) |
template< std::size_t I, class... Types > const typename std::tuple_element<I, std::tuple<Types...>>::type&& |
(4) | (C++11以上) (C++14以上ではconstexpr) |
template< class T, class... Types > constexpr T& get( std::tuple<Types...>& t ) noexcept; |
(5) | (C++14以上) |
template< class T, class... Types > constexpr T&& get( std::tuple<Types...>&& t ) noexcept; |
(6) | (C++14以上) |
template< class T, class... Types > constexpr const T& get( const std::tuple<Types...>& t ) noexcept; |
(7) | (C++14以上) |
template< class T, class... Types > constexpr const T&& get( const std::tuple<Types...>&& t ) noexcept; |
(8) | (C++14以上) |
1-4) タプルから
I
番目の要素を取り出します。 I
は [0, sizeof...(Types))
の範囲内の整数値でなければなりません。5-8) タプル
t
の型が T
である要素を取り出します。 タプルがその型の要素をちょうど1個持っているのでなければコンパイルに失敗します。目次 |
[編集] 引数
t | - | 内容を取り出すタプル |
[編集] 戻り値
t
の選択された要素を指す参照。
[編集] 欠陥報告
以下の動作変更欠陥報告は以前に発行された C++ 標準に遡って適用されました。
DR | 適用先 | 発行時の動作 | 正しい動作 |
---|---|---|---|
LWG 2485 | C++11 | there are no overloads for const tuple&& | the overloads are added |
[編集] 例
Run this code
#include <iostream> #include <string> #include <tuple> int main() { auto t = std::make_tuple(1, "Foo", 3.14); // インデックスベースのアクセス std::cout << "(" << std::get<0>(t) << ", " << std::get<1>(t) << ", " << std::get<2>(t) << ")\n"; // 型ベースのアクセス (C++14以上) std::cout << "(" << std::get<int>(t) << ", " << std::get<const char*>(t) << ", " << std::get<double>(t) << ")\n"; // ノート: std::tie および構造家束縛もタプルを分解するために使用できます。 }
出力:
(1, Foo, 3.14) (1, Foo, 3.14)
[編集] 関連項目
array の要素にアクセスします (関数テンプレート) | |
(C++11) |
pair の要素にアクセスします (関数テンプレート) |
(C++17) |
指定されたインデックスまたは型 (一意な場合) の値を variant から読み込みます。 エラーの場合は例外を投げます (関数テンプレート) |