在c ++模板中,我只知道2个用于空尖括号<>
的用例,这些用例遇到:
1)在模板完全专业化期间,例如
template<typename T>
class X
{};
template<>
class X<char>
{};
2)在模板化函数调用期间,可以推导出哪种参数类型,例如
template<typename T>
T add(T a, T b);
...
add<>(1, 2);
但是这个案子对我来说是全新的,我无法理解这种语法的含义(请看一下rapidxml::xml_node<>*
):
class TestWidget : public GUI::Widget
{
public:
TestWidget(const std::string& name, rapidxml::xml_node<>* elem);
// ...
};
构造函数参数???
中给xml_node<>
类型赋予了什么语义
答案 0 :(得分:3)
还有默认模板参数:
template<typename T = char>
class X
{};
所以
X<> x; // X<char>