考虑到以下结构和模板函数,每次使用具有不同“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>()
and print<3>()
是独立的功能。虽然理论上编译器可能能够进行这种优化,但实际上可能不会发生。确定答案的最佳方法是查看生成的汇编程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)