我很好奇为什么允许匿名模板typename/class声明,如下所示:
template <typename, class, typename> struct TemplateTest1 { int a; float b ; } ;
TemplateTest1 <int, int, int> tt1 ;
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释这些匿名类型的实用价值吗?它们会影响模板结构的表达吗?
谢谢.
Naw*_*waz 10
通过匿名,我假设您的意思是未命名的模板参数.
这是允许的,因为有时你可能不需要模板参数,因此使它匿名使程序员明白该参数不会在类中的任何地方使用,尽管它不是必需的.
它类似于允许带有未命名参数的函数的方式:
void f(int) //allowed
{
}
Run Code Online (Sandbox Code Playgroud)