std::enable_if
标准库文档这样写到:
辅助类型
template< bool B, class T = void > |
(C++14 起) | |
可能的实现
template<bool B, class T = void> struct enable_if {}; template<class T> struct enable_if<true, T> { typedef T type; }; |
这个东西标准文档里写的很清楚,看代码也能看明白,但是,在标准文档里面的注释,属实把我整蒙了。
注解
常见错误是声明二个函数模板,而它们仅于其默认模板实参相异。这是无效的,因为这些函数声明被当做同一函数模板的再声明(默认模板实参不为函数模板等价所考虑)。
可能翻译的不太好,我又查了英文版同样的内容
Notes
A common mistake is to declare two