空模板参数以节省空间

时间:2015-06-07 07:38:39

标签: c++ templates

假设我在项目中编写了一个类库,我不会使用所有可用的类/函数。将非模板函数编写为这样的模板是否有意义:

template<>
void doStuff(int argument)
{
     // Stuff done here
     return;
}

我认为模板规则可能适用于此,所以如果我根本不想做doStuff,并且不调用该函数,则根本不需要实例化,是吗?我是否也可以将这种技术用于课程,或者是否有一些我没有注意到的模板?

这样可以节省空间吗?

1 个答案:

答案 0 :(得分:1)

您的尝试是模板专业化。

要使功能模板不带模板参数,您可以使用默认模板参数:

template<typename = void>
void doStuff(int argument)
{
     // Stuff done here
}

但您可以改为内联:

inline void doStuff(int argument)
{
     // Stuff done here
}

但实际上少了链接器/编译器完成它们的工作,只有当它成为问题时才研究如何解决这个问题。