C++17のテンプレートな集成体とテンプレートパラメータ推論 C++17から、クラステンプレートのコンストラクタ引数からそのテンプレート引数を推論出来るようになりました。これによって、クラステンプレートを扱う際にとても便利に書けます。 // std::vector<int> std::vector vec = {1, 2, 3, 4, 5}; // std::pair<int, double> std::pair p = {1, 1.0}; template<typename T> struct vec3 { T v1, v2, v3; vec3(T a, T b, T c) : v1(a), v2(b), v3(c) {} }; // vec3<double> vec3 v3 = {1.0, 2.0, 1.0}; ところで、このvec3のような型は別にコンストラクタをわざわざ書かなくても