空模板参数以节省空间

Empty template parameters to save space

本文关键字:节省 空间 参数      更新时间:2023-10-16

假设我在我的项目中编写了一个类库,并且我不会使用所有可用的类/函数。像这样把一个非模板函数写成模板有意义吗?

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

我假设模板规则可能适用于这里,所以如果我根本不想做任何事情,也不调用那个函数,它就不需要被实例化,不是吗?我是否也可以将这种技术用于类,或者是否有关于模板的问题我没有注意到?

这样节省空间吗?

你的try是一个模板专门化。

要使函数模板没有模板参数,可以使用默认模板参数:
template<typename = void>
void doStuff(int argument)
{
     // Stuff done here
}

但是你可以将它内联:

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

,但事实上,很少有链接器/编译器做他们的工作,只有当它成为一个问题,调查如何解决这个问题