deduction guides for std::pair - cppreference.com (original) (raw)

C++

Compiler support
Freestanding and hosted
Language
Standard library
Standard library headers
Named requirements
Feature test macros (C++20)
Language support library
Concepts library (C++20)
Diagnostics library
Memory management library
Metaprogramming library (C++11)
General utilities library
Containers library
Iterators library
Ranges library (C++20)
Algorithms library
Strings library
Text processing library
Numerics library
Date and time library
Input/output library
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Technical specifications
Symbols index
External libraries

[edit]

Utilities library

Language support Type support (basic types, RTTI) Library feature-test macros (C++20) Program utilities Variadic functions initializer_list(C++11) is_constant_evaluated(C++20) is_within_lifetime(C++26) source_location(C++20) Coroutine support (C++20) Contract support (C++26) Three-way comparison three_way_comparablethree_way_comparable_with(C++20)(C++20) strong_ordering(C++20) weak_ordering(C++20) partial_ordering(C++20) common_comparison_category(C++20) compare_three_way_result(C++20) compare_three_way(C++20) strong_order(C++20) weak_order(C++20) partial_order(C++20) compare_strong_order_fallback(C++20) compare_weak_order_fallback(C++20) compare_partial_order_fallback(C++20) is_eqis_ltis_lteq(C++20)(C++20)(C++20) is_neqis_gtis_gteq(C++20)(C++20)(C++20) General utilities Function objects Bit manipulation (C++20) C-style bit manipulation (C++26) bitset hash(C++11) Relational operators (deprecated in C++20) rel_ops::operator!=rel_ops::operator>rel_ops::operator<=rel_ops::operator>= Integer comparison functions cmp_equalcmp_lesscmp_less_than(C++20)(C++20)(C++20) cmp_not_equalcmp_greatercmp_greater_than(C++20)(C++20)(C++20) in_range(C++20) Swap and type operations swap ranges::swap(C++20) exchange(C++14) declval(C++11) to_underlying(C++23) forward(C++11) forward_like(C++23) move(C++11) move_if_noexcept(C++11) as_const(C++17) Common vocabulary types pair tuple(C++11) optional(C++17) any(C++17) variant(C++17) tuple_size(C++11) tuple_element(C++11) apply(C++17) make_from_tuple(C++17) expected(C++23)

[edit]

std::pair

Member functions
pair::pair
pair::operator=
pair::swap(C++11)
Non-member functions
make_pair
operator==operator!=operator<operator<=operator>operator>=operator<=>(until C++20)(until C++20)(until C++20)(until C++20)(until C++20)(C++20)
swap(std::pair)(C++11)
get(std::pair)(C++11)
Helper classes
tuple_sizestd::pair(C++11)
tuple_elementstd::pair(C++11)
basic_common_referencestd::pair(C++23)
common_typestd::pair(C++23)
formatterstd::pair(C++23)
piecewise_construct_t(C++11)
Deduction guides(C++17)

[edit]

| Defined in header | | | | ----------------------------------------------------------------------------- | | ------------- | | template<class T1, class T2>pair(T1, T2) -> pair<T1, T2>; | | (since C++17) |

One deduction guide is provided for std::pair to account for the edge cases missed by the implicit deduction guides, in particular, non-copyable arguments and array to pointer conversion.

[edit] Example

Run this code

#include   int main() { int a[2], b[3]; std::pair p{a, b}; // explicit deduction guide is used in this case }