跳到主要内容

concepts

Concepts 约束

用概念约束模板实参,提升可读性与错误信息质量。

#include <concepts>

template <typename T>
concept Addable = requires(T a, T b) {
{ a + b } -> std::same_as<T>;
};

template <Addable T>
T add(T a, T b) { return a + b; }

也可使用 requires 子句:

template <typename T>
requires std::integral<T>
T inc(T v) { return v + 1; }