考虑以下结构和模板函数,是否每次使用具有不同“num”值的函数都会构建函数的新实例,或者自 const numbers<num> & nums
参数是一个引用,将被实现为一个指针,所有使用不同“num”值的人都可以指向函数的一个实例?
template<size_t num>
struct numbers{
public:
unsigned int nums[num];
};
template<size_t num>
void print(const numbers<num> & nums,size_t size){
for (int i=0;i<size;i++)
cout <<nums.nums[i]<<' ';
cout <<'\n';
}
最佳答案
就您(程序员)而言,print<2>()
和 print<3>()
是单独的功能。虽然理论上编译器可以进行这种优化,但实际上可能不会发生。确定答案的最佳方法是查看生成的汇编程序。
关于c++ - 这里是否为这个模板函数生成了不同的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4133307/