是否有任何性能命中与使用类型特征相关?类型特征优化
更确切地说,下面的评估是否是恒定的时间?编译器能够优化以下几种情况吗?
考虑这样的代码:
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