我试过的编译器都不接受这样的代码:
template <int ...a> bool foo() { return (a<=> ... <=>0); }
但对于任何其他<=,>=,==,!=,<,>
它编译。
cppreference在这里很清楚 -<=>
我们可以用于折叠表达式的二元运算符列表中没有。
这是 C++ 标准中的故意遗漏,还是编译器还没有准备好?
这个问题只是纯粹的好奇。我只是想知道这个领域的 C++ 方向是什么。我可以想象所有其他比较运算符都将从允许运算符的折叠表达式列表中删除,因为它们与<=>
折叠表达式一样有意义......