我有一个模板类,其中包含一个不依赖于模板参数的静态函数。然而,当我使用该函数时,编译器似乎强迫我指定一个类型名。
template <typename T>
class MyClass {
...
static void function();
};
template <typename T>
void MyClass<T>::function() {
....
}
此功能可用作:
MyClass<int>::function();
但是'int'只是为了满足编译器。它没有任何意义,可以替换为任何其他类型,这不会增加代码的可读性。我想做一些类似的事情
MyClass<>::function();
甚至
MyClass::function();
但编译器不让我。我意识到这是因为在头文件中我已将函数明确标记为模板化,但是当我从头文件中删除“< T >”时,它也不会编译。
这样做的正确方法是什么?