c++17中的类型萃取技术,动态编译过程中判断模板类型

#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;
}

猜你喜欢

转载自blog.csdn.net/neuzhangno/article/details/132410873