【发布时间】:2020-10-11 13:26:47
【问题描述】:
我有这段代码我无法编译,我想知道是否有办法解决它。错误是 - 类模板“a”的参数列表丢失。
//not compiling one
template <typename T = int>
struct a {
static T x;
static T function(T number) {
return x = number;
}
};
template <typename T>
T a<T>::x;
int main() {
int b = a::function(5);
return 0;
}
.
//compiling one
template <typename T = int>
struct a {
static T x;
static T function(T number) {
return x = number;
}
};
template <typename T>
T a<T>::x;
int main() {
int b = a<int>::function(5);
return 0;
}
为什么它不能使用我们默认传递的模板参数,我们如何在不输入模板参数的情况下解决这个问题?
【问题讨论】:
-
错误是什么?请在问题中包含它
-
问题不清楚。您正在寻找解决方法吗?你想达到什么目标?为什么工作代码不正常?
-
需要默认使用int,但仍然可以选择使用a
::function()将其更改为其他类型,但默认使用a ::function()只需传递 a::function()