C++20 concepts не работает

Пишу в Visual studio 19.

Установил стандарт языка с++20

Вот код из лекции:

template<typename T>
concept Incrementable = requires(T t)
{
    {++t}->T&;
};

Visual studio ругается:

введите сюда описание изображения

введите сюда описание изображения

Что я делаю не так?

UPD:

введите сюда описание изображения


Ответы (1 шт):

Автор решения: dIm0n

Потому что на этом месте должен быть type-constraint, а не тип. Надо использовать или std::same_as, или std::convertible_to, в зависимости от необходимого поведения.

Дока Compound Requirements.

Почему так сделано сказано в этом ответе: иначе была бы неоднозначная трактовка. Выражение ++t преобразуемо в T& или его тип в точности равен T&?

→ Ссылка