namespace std {
template <class T1, class T2>
pair(T1, T2) -> pair<T1, T2>;
}
概要
std::pair
クラステンプレートの型推論補助。
備考
- パラメータの型が
const T1&...
やT1&&...
ではなくコピーで受け取るようにしているため、配列からポインタへの変換、関数から関数ポインタへの変換が起こる std::make_pair()
関数と違って、std::reference_wrapper<T>
をT&
に展開はしない
例
#include <utility>
#include <type_traits>
int main()
{
std::pair p {3, "Hello"};
static_assert(std::is_same_v<
decltype(p),
std::pair<int, const char*>
>);
}
出力
バージョン
言語
- C++17
処理系
- Clang:
- GCC: 7.1.0 ✅
- Visual C++: ??