c++ - 模板函数可以比较两个类型名吗?

标签 c++

<分区>

Possible Duplicate:
Program to implement the is_same_type type trait in c++

我希望我的模板函数根据两个类型名称是否相等来做一些不同的事情:

template <typename T1, typename T2> f()
{
  if (T1==T2) ...;
  else ...;
}

我知道“if(T1==T2)”行不通,但是,有办法吗?

最佳答案

您可以查看 boost::is_samestd::is_same在 C++11 中。

所以,它会是这样的:

template <typename T1, typename T2> f()
{
  if (boost::is_same<T1,T2>::value) ...;
  else ...;
}

关于c++ - 模板函数可以比较两个类型名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13654309/

相关文章:

c++ - libcurl HTTP请求在MIME数据中设置内容处置和内容类型

c++ - 任意结构接口(interface)

c++ - mac OS X 上的原子增量

指向 QGraphicsItem 的指针的 c++ 列表

c++ - 使用对话框中的按钮选择 MFC 中的形状

c++ - Qt 5编码问题

c++ - 使用不相关的指针移动 shared_ptr

c++ - 如果我按值从函数返回一个 STL 容器,GCC 会单独复制所有元素吗?

c++14 - vec.begin() 和 begin(vec) 之间有什么区别

c++ - 动态内存分配 C++