假设我在项目中编写了一个类库,我不会使用所有可用的类/函数。将非模板函数编写为这样的模板是否有意义:
template<>
void doStuff(int argument)
{
// Stuff done here
return;
}
我认为模板规则可能适用于此,所以如果我根本不想做doStuff,并且不调用该函数,则根本不需要实例化,是吗?我是否也可以将这种技术用于课程,或者是否有一些我没有注意到的模板?
这样可以节省空间吗?
答案 0 :(得分:1)
您的尝试是模板专业化。
要使功能模板不带模板参数,您可以使用默认模板参数:
template<typename = void>
void doStuff(int argument)
{
// Stuff done here
}
但您可以改为内联:
inline void doStuff(int argument)
{
// Stuff done here
}
但实际上少了链接器/编译器完成它们的工作,只有当它成为问题时才研究如何解决这个问题。