gpt4 book ai didi

C++ SFINAE - std::enable_if 位置的差异 - 在模板中或返回

转载 作者:太空狗 更新时间:2023-10-29 21:11:47 25 4
gpt4 key购买 nike

<分区>

这两个实现有什么区别,我应该使用哪一个,因为如果我从 main 调用它们,它们的工作原理是一样的:

template<class T, typename std::enable_if<std::is_integral<T>::value, int>::type = 0>
void test( const T& t ){
printf("int\n");
}

template<class T, typename std::enable_if<std::is_floating_point<T>::value, int>::type = 0>
void test( const T& t ){
printf("float\n");
}

对比

template<class T>
typename std::enable_if<std::is_integral<T>::value>::type test1( const T& t ){
printf("int\n");
}

template<class T>
typename std::enable_if<std::is_floating_point<T>::value>::type test1( const T& t ){
printf("float\n");
}

和主要的:

int main(){ 
test(1);
test(1.0);

test1(1);
test1(1.0);
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com