是否有任何性能命中與使用類型特徵相關?類型特徵優化
更確切地說,下面的評估是否是恆定的時間?編譯器能夠優化以下幾種情況嗎?
考慮這樣的代碼:
template<typename T> void Function()
{
if(std::is_pointer<T>::value == true)
DoSmth();
}
Function<int*>();
將編譯器優化這樣的代碼來有效地成爲(在生成的二進制)類似的東西?
template<> void Function<int*>()
{
DoSmth();
}
你的例子並不反映你開始的問題。 – rubenvb 2014-12-09 12:07:37
@rubenvb它不以什麼方式?它看起來對我來說確實如此。 – hvd 2014-12-09 12:14:03
@ hvd問題是否會出現類型特徵會導致性能損失。該示例詢問編譯器是否可以優化常量(即編譯時)條件表達式。這些不是一回事。 – rubenvb 2014-12-09 12:15:21