テンプレート パラメーターに依存しない静的関数を含むテンプレート クラスがあります。それでも、コンパイラは、関数を使用するときに型名を指定するように強制しているようです。
template <typename T>
class MyClass {
...
static void function();
};
template <typename T>
void MyClass<T>::function() {
....
}
この関数は次のように使用できます。
MyClass<int>::function();
しかし、「int」はコンパイラを満足させるためにあるだけです。それは何の意味もなく、コードの可読性を向上させない他の型に置き換えることができます。私は次のようなことをしたいと思います
MyClass<>::function();
あるいは
MyClass::function();
しかし、コンパイラは私を許しません。これは、ヘッダー ファイルで関数がテンプレート化されていることを明示的にマークしているためであることに気付きましたが、ヘッダー ファイルから '< T >' を削除してもコンパイルされません。
これを行う正しい方法は何ですか?