模板偏特化
变量模板偏特化
template<typename T>
const char* s = "?"; // 主模板
template<typename T>
const char* s<T*> = "pointer"; // 偏特化,对指针这一类类型
template<typename T>
const char* s<T[]> = "array"; // 偏特化,但是只是对 T[] 这一类类型,而不是数组类型,因为 int[] 和 int[N] 不是一个类型
std::cout << s<int> << '\n'; // ?
std::cout << s<int*> << '\n'; // pointer
std::cout << s<std::string*> << '\n'; // pointer
std::cout << s<int[]> << '\n'; // array
std::cout << s<double[]> << '\n'; // array
std::cout << s<int[1]> << '\n'; // ?类模板偏特化
实现 std::is_same_v
std::is_same_v总结
Last updated