std:: get (std::pair)
|
헤더 파일에 정의됨
<utility>
|
||
|
template
<
std::
size_t
I,
class
T1,
class
T2
>
typename
std::
tuple_element
<
I,
std::
pair
<
T1,T2
>
>
::
type
&
|
(1) |
(C++11 이후)
(C++14 이후 constexpr) |
|
template
<
std::
size_t
I,
class
T1,
class
T2
>
const
typename
std::
tuple_element
<
I,
std::
pair
<
T1,T2
>
>
::
type
&
|
(2) |
(C++11부터)
(C++14부터 constexpr) |
|
template
<
std::
size_t
I,
class
T1,
class
T2
>
typename
std::
tuple_element
<
I,
std::
pair
<
T1,T2
>
>
::
type
&&
|
(3) |
(C++11부터)
(C++14부터 constexpr) |
|
template
<
std::
size_t
I,
class
T1,
class
T2
>
const
typename
std::
tuple_element
<
I,
std::
pair
<
T1,T2
>
>
::
type
&&
|
(4) |
(C++11부터)
(C++14부터 constexpr) |
|
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++14 이후) |
|
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++14 이후) |
tuple-like 인터페이스를 사용하여 페어에서 요소를 추출합니다.
I
가
0
도 아니고
1
도 아닌 경우 컴파일되지 않습니다.
T
와
U
타입이 동일한 경우 컴파일에 실패합니다.
목차 |
매개변수
| p | - | 내용을 추출할 pair |
반환값
예제
#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)
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 2485 |
C++11 (인덱스 기준)
C++14 (타입 기준) |
const pair&&에 대한 오버로드가 없음 | 오버로드가 추가됨 |
참고 항목
| Structured binding (C++17) | 지정된 이름들을 초기화자의 부분 객체나 튜플 요소에 바인딩합니다 |
|
(C++11)
|
튜플의 지정된 요소에 접근합니다
(function template) |
|
(C++11)
|
array
의 요소에 접근합니다
(function template) |
|
(C++17)
|
인덱스나 타입(타입이 고유한 경우)으로 variant의 값을 읽고, 오류 시 예외를 발생시킵니다
(function template) |
|
(C++20)
|
std::ranges::subrange
에서 반복자나 센티널을 얻습니다
(function template) |
|
(C++26)
|
std::complex
에서 실수부나 허수부에 대한 참조를 얻습니다
(function template) |