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&?


