Lofectr Asked:2020-09-06 18:19:48 +0800 CST2020-09-06 18:19:48 +0800 CST 2020-09-06 18:19:48 +0800 CST C++20 概念不起作用 772 我写在Visual studio 19. 设置语言标准с++20 以下是讲座中的代码: template<typename T> concept Incrementable = requires(T t) { {++t}->T&; }; Visual studio发誓: 我究竟做错了什么? 升级版: c++ 1 个回答 Voted Best Answer dIm0n 2020-09-06T18:35:51+08:002020-09-06T18:35:51+08:00 因为这个地方应该是type-constraint,不是类型。您应该使用std::same_as或std::convertible_to,这取决于所需的行为。 码头复合要求。 这个答案中说明了为什么这样做:否则会有一个模棱两可的解释。表达式是否++t可转换为T&或其类型是否完全等于T&?
因为这个地方应该是
type-constraint
,不是类型。您应该使用std::same_as
或std::convertible_to
,这取决于所需的行为。码头复合要求。
这个答案中说明了为什么这样做:否则会有一个模棱两可的解释。表达式是否
++t
可转换为T&
或其类型是否完全等于T&
?