std::vector我知道可以默认模板类型参数,但是,当我尝试在不提供模板参数的情况下构造 a 时,这不起作用:
#include<vector>
template <typename Int = int>
struct integer{
Int i;
};
int main(){
integer num;
std::vector<integer> vec;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
此代码返回类型值不匹配(编译器资源管理器链接)。是否可以在不写的情况下解决这个问题std::vector<integer<int>>
如果您有一个带有默认参数的函数:
int foo(int bar=0);
Run Code Online (Sandbox Code Playgroud)
要调用这个函数,你仍然需要编写:
int n=foo();
Run Code Online (Sandbox Code Playgroud)
int n=foo;当然,尝试写作是行不通的。出于同样的原因,如果您的模板参数是默认的,您仍然必须使用
integer<>
Run Code Online (Sandbox Code Playgroud)
实例化模板而不是
integer
Run Code Online (Sandbox Code Playgroud)