簡體   English   中英

C++:在模板函數中使用模板參數作為默認參數

[英]C++: Using a template parameter as a default argument in a template function

鑒於下面的代碼片段:

template<int n, double m>
void function(int x=n){
 double y=m;
 int array[n];
 ….
}

void main () {
 function<1+2,2>(8);
}

當函數被編譯時,x 是 3 還是 8(因為 n 只是默認參數)?

在您的示例中, n為 3, x為 8。實際參數值優先於默認值。

那個代碼有什么好處!!

模板非類型參數必須是結構類型(不能是雙精度)。 請參閱https://en.cppreference.com/w/cpp/language/template_parameters#Non-type_template_parameter

因此,如果double更改為int ,則變量將是x=8n=3m=2

另一件事將void main()更改為int main() 請參見main() 在 C 和 C++ 中應該返回什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM