2011-11-29 67 views

回答

-1

boost::call_traits類模板尚未專門針對double。主類模板返回const T &,這就是爲什麼它是const double &而不是double,雖然在這種情況下它並不重要,但如果T是具有大量數據成員的類類型,那麼它的確很重要。爲了避免不必要的複製,它是const引用。

4

根據doc,該優化顯然僅適用於「小」內置類型。

從快速瀏覽source,它看起來像「小」類型被認爲是那些滿足sizeof(T) <= sizeof(void *)。在32位機器上,這顯然不包括double

在某些情況下,它可能是更好的傳遞參數爲double,而不是double const&,但一如既往,你必須基準和測試...

相關問題