C++ C++;:在模板函数中将模板参数用作默认参数
给出下面的代码片段:C++ C++;:在模板函数中将模板参数用作默认参数,c++,function-templates,C++,Function Templates,给出下面的代码片段: template<int n, double m> void function(int x=n){ double y=m; int array[n]; …. } void main () { function<1+2,2>(8); } 模板 无效函数(int x=n){ 双y=m; 整数数组[n]; …. } 空干管(){ 功能(8); } 编译函数时,x是3还是8(因为n只是默认参数)?在您的示例中,n是3,x是8。实际参数值优先于默
template<int n, double m>
void function(int x=n){
double y=m;
int array[n];
….
}
void main () {
function<1+2,2>(8);
}
模板
无效函数(int x=n){
双y=m;
整数数组[n];
….
}
空干管(){
功能(8);
}
编译函数时,x是3还是8(因为n只是默认参数)?在您的示例中,
n
是3,x
是8。实际参数值优先于默认值。该代码有什么好处
模板非类型参数必须是结构类型(不能为双精度)。看
因此,如果将double
更改为int
,则VAR将为x=8
、n=3
和m=2
另一件事是将
void main()
更改为int main()
。请参见n在调用函数时只是变成类型。int在你的例子中,当你调用函数(8)时,它显示在我课程中的一张幻灯片中。这纯粹是为了教育目的,没有真正的效用。非常感谢。