0
我有一个函数,现在可以为我返回一个特定类型的值。它看起来像这样模板函数编译时返回类型无参数
template<typename T>
T getNullValue(){
if(std::is_same<T,long long>::value){
return NULL_LONG;
}else if(std::is_same<T,double>::value){
return NULL_DOUBLE;
}
}
这工作,但我不喜欢它在运行时解决,而不是编译时间,但这个可以让我做
double x = getNullValue<double>();
long long y = getNullValue<long long>();
我怎样才能让这个我可以只是重载不同版本的getNullValue,取决于我想返回的内容,而不必在运行时解决它。
getNullValue<type i need>();
请注意,如果使用优化进行编译,此代码是最优的。您可以执行“优雅”的模板重载,但会使代码比本应更复杂。 –
简单的答案是'如果constexpr'并且没有别的东西需要改变。 – chris
你是说如果我做“如果constexpr(std :: is_same ....)”那么它在编译时解析? – flips