我正在阅读 std::enable_if,并注意到以下内容。
template <typename Integer,
std::enable_if_t<std::is_integral<Integer>::value, int> = 0
>
T(Integer) : m_type(int_t) {}
由于 std::enable_if_t 是一种类型,对于这种情况它可以被计算为 int
或 void
。因此上述代码可以被计算为:
template <typename Integer,
int = 0
>
T(Integer) : m_type(int_t) {}
或者
template <typename Integer,
void = 0
>
T(Integer) : m_type(int_t) {}
我不理解 int = 0
或者 void = 0
的意思,请问有人能帮我解释一下吗?谢谢。