我想知道泛型和顯式類型實現的類/結構的影響。 [上性能和代碼/二進制大小]泛型類型與明確類型類/結構
例如,假設我想實現一個元組結構,可以接受這些值類型(整數,浮點,雙)的。
有兩種方法去做:
使用泛型結構與模板
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