我想知道泛型和显式类型实现的类/结构的影响。 [上性能和代码/二进制大小]泛型类型与明确类型类/结构
例如,假设我想实现一个元组结构,可以接受这些值类型(整数,浮点,双)的。
有两种方法去做:
使用泛型结构与模板
template <class T>
struct tuple{
T x,y;
//... the rest of methods and operand implementations
};
2-实施副本每种类型的明确
struct tuplef{
float x,y;
//... the rest of methods and operand implementations
};
struct tuplei{
int x,y;
//... the rest of methods and operand implementations
};
struct tupled{
double x,y;
//... the rest of methods and operand implementations
};
在我看来,第一种方法更容易更新和维护,但不安全的时候n个用户试图在第二种方法使用,无论是不是在一些方法实现(这将需要过滤和路由,为不同类型和可能增加一些额外的操作实现)占类型,这将是因为只有特定的安全类型被接受,但用尽处理不同版本的代码来更新方法的实现,并且它是如此冗余并涉及更多行代码。
期待可以在这个不同的角度启发。
注:我第一次用Google搜索,并不能找到太多对此事
编辑:一个多点这里要考虑的是,在第一种方法包括我们要使用的实现文件当使用使用通用类型的成员方法时,类(cpp)是不可避免的,但在第二种情况下,我们可以只包含头文件(h)。似乎这对主题[check this out]有相关影响。
你可以尝试编译一个两个小例子,并检查这样的大小http://blog2.emptycrate.com/content/nobody-understands-c-part-5-template-code-bloat – wizurd