小编Ste*_*fan的帖子

C++20 使用概念来限制“自动”非类型模板参数?

我有一个模板类,它采用几个非类型参数(GPIO 描述符)。Auto 用于允许使用多种不同的 GPIO 实现。这些实现不能从公共基类派生。

我可以使用一个概念将这些参数限制为具有正确接口的参数吗?

我有一个概念,但它不起作用,GCC 告诉我“错误:‘DigitalOutput’不限制类型”:

template <auto gp>
concept DigitalOutput = requires() { gp.set(); gp.reset(); };

// template <auto output>
template <DigitalOutput output>
struct driver {...};
Run Code Online (Sandbox Code Playgroud)

有可能使这项工作成功吗?

c++ templates c++-concepts c++20

12
推荐指数
3
解决办法
765
查看次数

标签 统计

c++ ×1

c++-concepts ×1

c++20 ×1

templates ×1