例如:
#include <concepts>
template <typename T> concept A = requires(T a) {
{ a.foo() }
->std::same_as<int>;
};
template <typename T> concept B = requires(A a, T b) {
{ b.bar(a) }
->std::same_as<float>;
};
这无法编译,这是可以理解的,因为模板是如何在c ++中工作的。一种解决方法是定义一个满足A
的单一类型,然后使用该类型。但是,这有些重复。有更好的解决方案吗?