1
1
正如你在问题中所说的,SFINAE只发生在“即时上下文”中,“扣除失败”所包含的情况列在下面 [temp.deduct] . 代码中发生的错误将是格式错误,标准中提到了这一点:
因此,当需要为类型实例化函数模板f时,您的程序将是格式错误的
解决方案:
|
2
0
在C++中,必须将约束放在函数本身上,以便检测工作: Demo (C++ 20)
回想一下C++的工作原理 类型 |
user1683586 · 使用复制构造函数启用_if 7 年前 |
ssb · C++SFINAE解析顺序 7 年前 |
Viatorus · SFINAE:函数模板优化 8 年前 |
Ammar Husain · 元编程的C++STL功能等价物 8 年前 |
KentH · 使用std::result_of的意外SFINAE失败 9 年前 |