c++ - 如何检查两个模板参数是否完全相同?

标签 c++ templates c++11

如果模板参数 TU 的类型完全相同,我该如何修改以下函数模板使其返回 42?

template<typename T,typename U>
int Foo()
{
  return 0;
}

最佳答案

使用 std::is_same可以提供所需的行为:

#include <type_traits>

template<typename T,typename U>
int Foo()
{
    return std::is_same<T, U>::value ? 42 : 0;
}

关于c++ - 如何检查两个模板参数是否完全相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14635413/

相关文章:

c++ - 比从基类转换到派生类更好的方法

templates - struts 项目中的瓷砖 - 比 freemarker 更好?

c++ - 模板基类中枚举的 typedef

C++11 std::function 和 std::reference 包装器用于排序 std::set

c++ - 将模板参数与模板类型匹配

c++ - RValue 引用行为

c++ - 数组下标的无效类型 ‘unsigned char[int]’

c++ - 如何解压缩多维 c 样式数组类型并声明 std::array 实例?

c++ - 如何使用成员方法作为回调而不是像设计这样的状态机的静态方法

c++ - 在 C++ 的链表中通过 "<<"打印对象