如果我有一个具有默认模板类型的模板类,我必须编写模板尖括号。有没有可能避免这种情况?
例子:
template <typename T=int>
class tt {
public:
T get() { return 5; }
};
...
tt<> t; // how to avoid <>
std::cout << t.get() << std::endl;
到目前为止,我已经通过一个单独的命名空间并重新声明了这个类:
namespace detail_ {
template <typename T=int>
class tt {
public:
T get() { return 5; }
};
}
class tt : public detail_::tt {}
...
tt t;
std::cout << t.get() << std::endl;
问题是,如果我想将该类与其他类型一起使用,我必须检查命名空间 detail_。是否有另一种解决方案,我还没有看到。