関数テンプレートにテンプレート引数のデフォルト値が渡せない理由

ロベールのC++入門講座 09-08

前にテンプレートの勉強をした時に疑問に思ってた部分ですが、ロベール本で少し言及がありました。

実は関数テンプレートのテンプレート引数の場合はデフォルト引数をとることができません。

これはおそらく、関数テンプレートの場合は基本的に引数から型を推測するため、デフォルト引数が必要になる状況自体がほとんどないからではないかと思います。

なるほど。確かにクラステンプレートと違って関数テンプレートの場合はその関数の引数から自動判別して使うやり方が多いのでデフォルト引数を設定する必要性があまり感じられず、できないようにしたのかもしれませんね。

でもあったらあったで便利だったとは思いますが。