は、以下のテンプレート定義を仮定(コードは無意味です):質問++テンプレート
template<class X, class Y>
bool FooBar(const Y& val) { return sizeof(X) + 4; }
私は、次の呼び出しのコードが合法であることがわかっています
float temp = 0.f;
FooBar<int>(temp);
あなたが見ることができるように、第2のタイプのパラメータY
は省略することができます。コンパイラは、temp
という引数の型を見て、Y
の型を推論します。
何のルールやC++テンプレートの仕様では、これを可能に?私はそれを見てかなり驚いた。
インスタンスです。 –