【发布时间】:2021-01-23 05:04:04
【问题描述】:
很多文章都给出了这样的例子:
template<typename T>
concept Equal = requires(T a, T b) {
{ a == b } -> std::same_as<bool>;
};
如果我写有什么不同吗:
template<typename T>
concept Equal = requires(T a) {
{ a == a } -> std::same_as<bool>;
};
如果不是,为什么要这样设计语法?为什么他们要求我声明这些变量,例如 a 或 b?
为什么我需要多个相同类型的变量?为什么我什至需要变量?
template<typename T>
concept Equal = requires {
{ declval<const T&>() == declval<const T&>() }
-> std::same_as<bool>;
};
【问题讨论】:
标签: c++ c++20 c++-concepts