【一人 C++20 Advent Calendar 2019】autoパラメータによる関数テンプレートの簡易定義【7日目】
一人 C++20 Advent Calendar 2019 7日目の記事になります。
autoパラメータによる関数テンプレートの簡易定義
C++ 14 で実装されたジェネリックラムダでは引数型として auto
が使えました。
auto plus = [](auto a, auto b) { return a + b; }; plus(1, 2); // => 3
これに伴い C++20 では通常の関数でも引数型に auto
が使用できるようになります。
#include <iostream> auto plus(auto a, auto b) { return a + b; } // 以下と同等 // template<typename T, typename U> // auto // plus(T a, U b) { // return a + b; // } int main(){ std::cout << plus(1, 2) << std::endl; std::cout << plus(3.14, 1.14) << std::endl; return 0; }
うおーーこれは前からほしかった奴やん。
べんりそう。