- tuple[meta header]
- std[meta namespace]
- class template[meta id-type]
- cpp11[meta cpp]
namespace std {
template <class... Args>
class tuple;
}
tuple
型は、複数の型の値を保持する「タプル」を表現するためのクラスである。
pair
型は2つの型の値を保持する「組」を表現することができるが、tuple
ではN個の型の値を扱うことができる。
名前 | 説明 | 対応バージョン |
---|---|---|
(constructor) |
コンストラクタ | C++11 |
operator= |
代入演算子 | C++11 |
swap |
異なるtuple オブジェクトと値を入れ替える |
C++11 |
名前 | 説明 | 対応バージョン |
---|---|---|
ignore |
無視する要素のプレースホルダー(constant variable) | C++11 |
make_tuple |
引数のコピーからタプルを生成する | C++11 |
forward_as_tuple |
引数の完全な型からタプルを生成する | C++11 |
tie |
引数への参照からタプルを生成する | C++11 |
tuple_cat |
複数のタプルから1つのタプルを生成する | C++11 |
名前 | 説明 | 対応バージョン |
---|---|---|
get |
tuple のi 番目の要素を参照する |
C++11 |
名前 | 説明 | 対応バージョン |
---|---|---|
swap |
2つのtuple オブジェクトを入れ替える |
C++11 |
名前 | 説明 | 対応バージョン |
---|---|---|
operator== |
等値判定を行う | C++11 |
operator!= |
非等値判定を行う | C++11 |
operator< |
左辺が右辺よりも小さいか判定を行う | C++11 |
operator<= |
左辺が右辺以下か判定を行う | C++11 |
operator> |
左辺が右辺より大きいか判定を行う | C++11 |
operator>= |
左辺が右辺以上か判定を行う | C++11 |
名前 | 説明 | 対応バージョン |
---|---|---|
(deduction_guide) |
クラステンプレートの推論補助 | C++17 |
#include <iostream>
#include <tuple>
#include <string>
int main()
{
// 3要素のタプルを作る
std::tuple<int, char, std::string> t = std::make_tuple(1, 'a', "hello");
// 0番目の要素を参照
int& i = std::get<0>(t);
std::cout << i << std::endl;
// 2番目の要素を参照
std::string& s = std::get<2>(t);
std::cout << s << std::endl;
}
- std::tuple[color ff0000]
- std::get[link tuple/get.md]
- std::make_tuple[link make_tuple.md]
1
hello
- C++11
- Clang: 3.0
- GCC, C++11 mode: 4.3.4, 4.4.4, 4.5.2, 4.6.1
- ICC: ?
- Visual C++: 2008, 2010