需要使用可以将另一个概念作为参数的方法的概念

时间:2020-03-20 00:58:15

标签: c++ templates c++20 c++-concepts

例如:

#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的单一类型,然后使用该类型。但是,这有些重复。有更好的解决方案吗?

0 个答案:

没有答案