相关疑难解决方法(0)

避免默认模板中的尖括号

如果我有一个默认模板类型的模板类,但我必须写模板尖括号.有可能避免这种情况吗?

例:

template <typename T=int>
class tt {
public:
  T get() { return 5; }
};

...

tt<> t;  // how to avoid <>
std::cout << t.get() << std::endl;
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已通过单独的命名空间完成此操作并重新声明该类:

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;
Run Code Online (Sandbox Code Playgroud)

问题是,如果我想使用其他类型的类,我必须去名称空间detail_.有没有其他解决方案,我还没有看到.

c++ templates coding-style class-template

8
推荐指数
3
解决办法
1871
查看次数

标签 统计

c++ ×1

class-template ×1

coding-style ×1

templates ×1