typenameと仮引数
template <class T> struct example { typedef int a_type; example<T>::a_type func(); // <-- NG! void func(example<T>::a_type p); // <-- OK! };
NGの方は頭にtypenameを付ければ良いのだけど、仮引数の方はtypenameを付けなくても大丈夫なのは何故だろう?
template <class T> struct example { typedef int a_type; example<T>::a_type func(); // <-- NG! void func(example<T>::a_type p); // <-- OK! };
NGの方は頭にtypenameを付ければ良いのだけど、仮引数の方はtypenameを付けなくても大丈夫なのは何故だろう?