作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有这个代码:
struct A{};
template<class T = A>
struct B {
void foo() {}
};
B b; //Error: missing template arguments before 'b'
//Error: expected ';' before 'b'
//More errors
b.foo()
如果我将 foo()
作为具有相同模板“签名”的模板函数,编译器不会提示没有指定模板参数:
struct A {};
struct B {
template<class T = A>
void foo() {}
};
B b; //OK
b.foo()
那么为什么我需要为带有默认参数的模板类指定参数,而不是为模板函数指定参数呢?我是否遗漏了一些微妙之处?
原因肯定是因为模板参数推导失败。但我想知道为什么。
最佳答案
关于c++ - 默认模板参数 : Why does the compiler complain about not specifying template argument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11231372/
我是一名优秀的程序员,十分优秀!