空模板参数以节省空间
Empty template parameters to save space
假设我在我的项目中编写了一个类库,并且我不会使用所有可用的类/函数。像这样把一个非模板函数写成模板有意义吗?
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
}
,但事实上,很少有链接器/编译器做他们的工作,只有当它成为一个问题,调查如何解决这个问题
相关文章:
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 命名空间中具有.h和.cpp文件的类
- 从父命名空间重载类型
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 在命名空间中定义函数还是限定函数
- C++:对不存在的命名空间使用命名空间指令
- 通过继承类使用来自不同命名空间的运算符
- 使用命名空间时出现多个定义错误
- OpenGL相机和相机空间转型的困惑
- CUDA内核和数学函数的显式命名空间
- 打印第二列时的2d字符矢量打印空间
- 嵌套的匿名命名空间
- CMakeLists.txt中的命名空间表示法
- 类是C++中的命名空间吗
- 有什么方法可以"factor out"公共字段以节省空间?
- 将数组类型更改为 Int16 会节省存储空间吗?
- 如何在文件中节省空间地存储和检索 std::vector<int> 值
- 除了明显的节省空间的好处之外,位域是否有任何隐藏的成本或好处?
- 使用虚函数调用时节省堆栈空间
- 空模板参数以节省空间