我有一个模板类,它采用几个非类型参数(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)
有可能使这项工作成功吗?