Проверьте концепцию по типу - PullRequest
6 голосов
/ 23 апреля 2019

Как получить ядро-константное выражение типа bool из концепта и типа?

template<class T>
concept Valid = requires(T t) {
    { t.x };
};

struct ValidExample   { int x; };
struct InValidExample {};

static_assert(?); // ValidExample is Valid
static_assert(?); // InValidExample is not Valid

Я начинаю играть с концепциями и хотел бы проверить тип поконцепт (точнее: определить черту из концепта).Как это сделать?

1 Ответ

15 голосов
/ 23 апреля 2019

Вы можете использовать:

static_assert(Valid<ValidExample>); // ValidExample is Valid
static_assert(!Valid<InValidExample>); // InValidExample is not Valid

как переменные шаблона (типа bool).

...