template constructer

class Hoge {
    // x
    template <typename T>
    Hoge ();
    // x
    template <int val>
    Hoge ();
    // o
    template <typename T>
    Hoge (T t);
    // o
    template <typename T>
    void func ();
};
Hoge hoge;

Hoge() コンストラクタはテンプレート引数を指定する方法がないので この書き方は不可能。
Hoge(T t) コンストラクタは、引数によってテンプレート引数を指定することができるので この書き方は可能。
func 関数は、 hoge.func() と指定することでテンプレート引数を指定できるので この書き方は可能。