std::get(std::pair)
Min standard notice:
Header: <utility>
Extracts an element from the pair using tuple-like interface.
# Declarations
template< std::size_t I, class T1, class T2 >
typename std::tuple_element<I, std::pair<T1,T2> >::type&
get( std::pair<T1, T2>& p ) noexcept;
(since C++11) (constexpr since C++14)
template< std::size_t I, class T1, class T2 >
const typename std::tuple_element<I, std::pair<T1,T2> >::type&
get( const std::pair<T1,T2>& p ) noexcept;
(since C++11) (constexpr since C++14)
template< std::size_t I, class T1, class T2 >
typename std::tuple_element<I, std::pair<T1,T2> >::type&&
get( std::pair<T1,T2>&& p ) noexcept;
(since C++11) (constexpr since C++14)
template< std::size_t I, class T1, class T2 >
const typename std::tuple_element<I, std::pair<T1,T2> >::type&&
get( const std::pair<T1,T2>&& p ) noexcept;
(since C++11) (constexpr since C++14)
template< class T, class U >
constexpr T& get( std::pair<T, U>& p ) noexcept;
(since C++14)
template< class T, class U >
constexpr const T& get( const std::pair<T, U>& p ) noexcept;
(since C++14)
template< class T, class U >
constexpr T&& get( std::pair<T, U>&& p ) noexcept;
(since C++14)
template< class T, class U >
constexpr const T&& get( const std::pair<T, U>&& p ) noexcept;
(since C++14)
template< class T, class U >
constexpr T& get( std::pair<U, T>& p ) noexcept;
(since C++14)
template< class T, class U >
constexpr const T& get( const std::pair<U, T>& p ) noexcept;
(since C++14)
template< class T, class U >
constexpr T&& get( std::pair<U, T>&& p ) noexcept;
(since C++14)
template< class T, class U >
constexpr const T&& get( const std::pair<U, T>&& p ) noexcept;
(since C++14)
# Parameters
p: pair whose contents to extract
# Example
#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";
}
# Defect reports
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 2485 | C++11 (by index)C++14 (by type) | there are no overloads for const pair&& | the overloads are added |