为了避免由于过度内联导致的代码bload ...
这是实现行为的模板函数的有效方法吗?
像内联函数?
原始内联函数声明:
inline double MyInlineFunction(){
return 3.141592653589;
}
使用模板功能的替代功能声明:
template<typename T = void> double MyInlineFunctionT(){
return 3.141592653589;
}
答案 0 :(得分:2)
标记函数inline
告诉编译器可以在多个转换单元中定义相同的函数。它还暗示该函数应该内联扩展,但大多数编译器在这方面做出自己的判断。类似地,模板函数可以在多个翻译单元中实例化,编译器将自己判断是否将其扩展为内联。
简短版本:代码大小没有区别。但是模板版本更难理解,更难编译,更难使用,更容易产生错误。