假设我有一个模板类定义为:
template < typename A, typename B >
class something { ... }
如何测试类型 A 和 B 是否属于同一类型?我知道这可以在运行时使用 typeid 完成,但我真的需要这是一个编译时测试。
另外,如果 A 类型和 B 类型相同,我该如何专业化该课程?
在现实世界中,A 将是某种 stl 容器,例如 std::string,而 B 将是 char 或 wchar_t。在内部我已经检查了容器 value_type (如果不是预期的编译错误)。如果 B 与容器 value_type 相同,则类中的大部分代码将变得多余。