模板编程之std::is_same和std::decay

Posted muzzik

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板编程之std::is_same和std::decay相关的知识,希望对你有一定的参考价值。

std::is_same判断两种类型是否相同,相同返回true,不同返回false

std::is_same<int, int>::value结果为true
std::is_same<int, bool>::value结果为false

std::decay则是去掉类型修饰符,如const、& 等...

两者结合则为

template<typename T>
bool checkType_Int(T value) {
  return std::is_same<typename std::decay<T>::type,int>::value;
}

参考来自https://blog.csdn.net/tecsai/article/details/76610240

以上是关于模板编程之std::is_same和std::decay的主要内容,如果未能解决你的问题,请参考以下文章

C++11的std::is_same和std::decay使用与源码解析

在 vc++ 中使用模板限制类型

使用std :: is_same和operator ||进行编译错误

如何使用模板参数包实现 SFINAE 仅限于少数类型

SFINAE 在类型和非类型模板参数的情况下工作方式不同

VS2013 中的 SFINAE