根据类型检查概念

Check a concept against a type

如何从概念和类型中得到布尔类型的核心常量表达式?

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

我开始研究概念,我想根据概念检查类型(更准确地说:从概念定义特征)。如何操作?

您可能会使用:

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

作为模板变量(bool 类型)。