减少C ++模板代码上的样板代码

缺口

假设我有这样的代码:

template <class T>
class Something{
public:
    int func1();
    int func2();

    T   t;
    int n = 0;
};

template <class T>
int Something<T>::func1(){
   return t.value() * n;
}

template <class T>
int Something<T>::func2(){
   return n;
}

在这种情况下,Something::func2()它实际上并不依赖于模板参数T,因此可以将其编译到目标文件中,而不必每次都重新编译(这与编译器相关,并且可以为真,也可以不为真)。

其次,您仍然需要输入template <class T> int Something<T>::func2()

有没有一种方法可以简化样板代码?

回声

在这种情况下,Something :: func2()实际上并不依赖于模板参数T,因此可以将其编译到目标文件中,而不必每次都重新编译(这与编译器相关,并且可以为真,也可以不为真)。

否。func2是类的方法,并且由于Something<int>Something<double>是两个不同的类,因此应编译其代码。

您可以做的是将类中的方法提取到单独的方法或基类中,但是总的来说,我认为您不应该这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

减少C ++中的代码重复:在略有不同的项目中使用相同的样板片段

来自分类Dev

减少类层次结构中的构造函数样板代码

来自分类Dev

使用模板函数减少代码

来自分类Dev

在C ++中合并样板vector <>代码

来自分类Dev

减少ATmega8的C代码大小

来自分类Dev

减少ATmega8的C代码大小

来自分类Dev

减少std :: bind模板代码膨胀?

来自分类Dev

避免在多个c ++模板spezialization上的代码重复

来自分类Dev

使用C预处理器生成样板代码

来自分类Dev

抽象类充当列表管理器(包含列表的列表)以减少样板代码?

来自分类Dev

如何使用map和reduce减少play框架json读取的样板代码?

来自分类Dev

如何使用类模板删除样板代码?

来自分类Dev

减少if语句上的代码量的问题

来自分类Dev

减少XML文档上重复的循环代码

来自分类Dev

双重编译C代码以减少执行时间

来自分类Dev

减少C#中代码复制的惯用方式

来自分类Dev

减少描述C#中的嵌套集合所需的代码

来自分类Dev

如何减少此程序中使用的C#代码量?

来自分类Dev

C ++模板专业化冗余减少

来自分类Dev

减少C ++中的模板化类参数

来自分类Dev

减少C ++中的模板化类参数

来自分类Dev

C ++模板专业化冗余减少

来自分类Dev

C ++模板变量代码效率

来自分类Dev

C ++模板变量代码效率

来自分类Dev

优化CSS以减少代码

来自分类Dev

减少JQuery重复代码

来自分类Dev

减少代码重复

来自分类Dev

DRY:减少代码

来自分类Dev

减少代码重复