2
考慮一個模板函數(與原始模板變量,即非類,非結構模板變量):C++模板可變碼效率
#include <iostream>
template <int m, int n>
int f() {
return m+n;
}
int main() {
for (int i=0; i<2; ++i)
for (int j=0; j<2; ++j)
std::cout << f<i,j>() << endl;
}
將編譯器生成的f()
4個副本?或只是1副本,與m,n作爲「內部」參數?
UPDATE
看來,這個代碼不能編譯。看來模板變量必須是常量。 (我不確定:任何一個?) 如果是這樣,抱歉提出一個荒謬的問題。