std::get(std::pair)
提供: cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
| ヘッダ <utility> で定義
|
||
| (1) | ||
template< size_t I, class T1, class T2 > typename std::tuple_element<I, std::pair<T1,T2> >::type& get( pair<T1, T2>& p ) noexcept; |
(1) | (C++11以上) (C++14未満) |
template< size_t I, class T1, class T2 > constexpr std::tuple_element_t<I, std::pair<T1,T2> >& get( pair<T1, T2>& p ) noexcept; |
(1) | (C++14以上) |
| (2) | ||
template< size_t I, class T1, class T2 > const typename std::tuple_element<I, std::pair<T1,T2> >::type& get( const pair<T1,T2>& p ) noexcept; |
(2) | (C++11以上) (C++14未満) |
template< size_t I, class T1, class T2 > constexpr const std::tuple_element_t<I, std::pair<T1,T2> >& get( const pair<T1,T2>& p ) noexcept; |
(2) | (C++14以上) |
| (3) | ||
template< size_t I, class T1, class T2 > typename std::tuple_element<I, std::pair<T1,T2> >::type&& get( std::pair<T1,T2>&& p ) noexcept; |
(3) | (C++11以上) (C++14未満) |
template< size_t I, class T1, class T2 > constexpr std::tuple_element_t<I, std::pair<T1,T2> >&& get( std::pair<T1,T2>&& p ) noexcept; |
(3) | (C++14以上) |
template< size_t I, class T1, class T2 > constexpr const std::tuple_element_t<I, std::pair<T1,T2> >&& get( const std::pair<T1,T2>&& p ) noexcept; |
(4) | (C++17以上) |
template <class T, class U> constexpr T& get(std::pair<T, U>& p) noexcept; |
(5) | (C++14以上) |
template <class T, class U> constexpr const T& get(const std::pair<T, U>& p) noexcept; |
(6) | (C++14以上) |
template <class T, class U> constexpr T&& get(std::pair<T, U>&& p) noexcept; |
(7) | (C++14以上) |
template <class T, class U> constexpr const T&& get(const std::pair<T, U>&& p) noexcept; |
(8) | (C++17以上) |
template <class T, class U> constexpr T& get(std::pair<U, T>& p) noexcept; |
(9) | (C++14以上) |
template <class T, class U> constexpr const T& get(const std::pair<U, T>& p) noexcept; |
(10) | (C++14以上) |
template <class T, class U> constexpr T&& get(std::pair<U, T>&& p) noexcept; |
(11) | (C++14以上) |
template <class T, class U> constexpr const T&& get(const std::pair<U, T>&& p) noexcept; |
(12) | (C++17以上) |
タプルライクなインタフェースを使用してペアから要素を取り出します。
インデックスベースのオーバーロード (1-4) は、インデックス I が0でも1でもなければ、コンパイルに失敗します。
型ベースのオーバーロード (5-12) は、型 T と型 U が等しい場合、コンパイルに失敗します。
引数
| p | - | 内容を取り出すペア |
戻り値
1-4)
I==0 の場合は p.first を指す参照、 I==1 の場合は p.second を指す参照を返します。5-8)
p.first を指す参照を返します。9-12)
p.second を指す参照を返します。例外
Run this code
#include <iostream>
#include <utility>
int main()
{
auto p = std::make_pair(1, 3.14);
std::cout << '(' << std::get<0>(p) << ", " << std::get<1>(p) << ")\n";
std::cout << '(' << std::get<int>(p) << ", " << std::get<double>(p) << ")\n";
}
出力:
(1, 3.14)
(1, 3.14)
関連項目
| タプルの指定された要素にアクセスします (関数テンプレート) | |
array の要素にアクセスします (関数テンプレート) | |
(C++17) |
指定されたインデックスまたは型 (一意な場合) の値を variant から読み込みます。 エラーの場合は例外を投げます (関数テンプレート) |