我认为此代码应打印“ hit”,但不能打印。如果注释掉第6行(模板行),它将显示“匹配”。
#include <iostream>
struct test {
test() {}
template<typename = typename std::enable_if<true>::type>
test(test const & other) {
std::cout << "hit";
}
};
int main()
{
test a;
test b(a);
}
标准明确指出了这一点。有什么道理?