#include <iostream>
#include <type_traits>
// 模板函数,用于处理整数类型
template <typename T>
typename std::enable_if<std::is_integral<T>::value>::type
process(T value)
{
std::cout << "Processing an integral value: " << value << std::endl;
}
// 模板函数,用于处理浮点类型
template <typename T>
typename std::enable_if<std::is_floating_point<T>::value>::type
process(T value)
{
std::cout << "Processing a floating-point value: " << value << std::endl;
}
// 模板函数,用于其他类型
template <typename T>
typename std::enable_if<!std::is_integral<T>::value && !std::is_floating_point<T>::value>::type
process(T value)
{
std::cout << "Processing an unknown value" << std::endl;
}
int main()
{
int num = 10;
process(num);
// 输出:Processing an integral value: 10
double d = 3.14;
process(d);
// 输出:Processing a floating-point value: 3.14
char ch = 'A';
process(ch);
// 输出:Processing an unknown value
return 0;
}
c++17中的类型萃取技术,动态编译过程中判断模板类型
猜你喜欢
转载自blog.csdn.net/neuzhangno/article/details/132410873
今日推荐
周排行