Я читаю о концепциях C++20 и застрял на следующем фрагменте кода.
В частности, строка { value.get_hp() } -> std:: Convertible_to;, насколько я понимаю, там говорится, что мы можем вызвать value.get_hp() для значения переменной типа T, и его возвращаемое значение можно преобразовать в unsigned интервал. Но я не понимаю синтаксиса здесь. Как используется -> в этой строке?
#include
namespace contracts::cpp20
{
template
concept can_behave = requires(T value)
{
value.behave();
};
template
concept has_hp_getter = requires(const T value)
{
{ value.get_hp() } -> std::convertible_to;
};
template
concept entity =
can_behave and
has_hp_getter
;
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... -to-syntax