我在win32 program @ windows 7機器上使用代碼「boost :: call_traits :: param_type」。令我驚訝的是,它不是「雙」,而是「const double &」。爲什麼boost :: call_traits <double> :: param_type是「const double&」,而不是「double」
我認爲所有基元類型都可以很好地使用函數參數的「傳值」,這不是一種常識嗎?因爲很多人會用is_pod來決定是否使用引用,不是嗎?
我在win32 program @ windows 7機器上使用代碼「boost :: call_traits :: param_type」。令我驚訝的是,它不是「雙」,而是「const double &」。爲什麼boost :: call_traits <double> :: param_type是「const double&」,而不是「double」
我認爲所有基元類型都可以很好地使用函數參數的「傳值」,這不是一種常識嗎?因爲很多人會用is_pod來決定是否使用引用,不是嗎?
boost::call_traits
類模板尚未專門針對double
。主類模板返回const T &
,這就是爲什麼它是const double &
而不是double
,雖然在這種情況下它並不重要,但如果T
是具有大量數據成員的類類型,那麼它的確很重要。爲了避免不必要的複製,它是const引用。