如何从概念和类型中获取布尔类型的核心常数表达式?
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
我开始研究概念,我想根据概念检查类型(更精确地说:从概念定义特征)。怎么做?
答案 0 :(得分:15)
您可以使用:
static_assert(Valid<ValidExample>); // ValidExample is Valid
static_assert(!Valid<InValidExample>); // InValidExample is not Valid
作为模板变量(类型为bool
)。