[英]Cost of conversion between integral types
我正在創建在程序中使用的數學函數補充庫,並希望實現gcd函數 。 我可能會經常使用此功能,因此優化非常重要 。
我想知道關於優化,是否有必要為不同的整數類型實現幾個gcd重載。 如圖所示:
int gcd(const int lhs, const int rhs);
long gcd(const long lhs, const long rhs);
long long gcd(const long long lhs, const long long rhs);
在整數類型之間進行轉換時會產生固有成本嗎?還是我可以只實現long long
版本並將其稱為“足夠好”?
好吧,首先,您可以將其模板化:
template <typename T>
T gcd(const T lhs, const T rhs);
如果您最關心的只是代碼復制,請調用gcd<int>(a, b)
或所需的任何類型。
就是說,雖然我懷疑整數類型轉換是否會在概要分析中顯示出來,但是您應該首先以最方便的方式編寫這種東西,並且擔心是否確實需要對它進行優化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.