c – 使用概念启用类模板的成员函数

所以我有一个概念Fooable:
template <typename T>
concept bool Fooable()
{
    return requires(...){ ... };
}

我有一个类模板Bar,它将类型T作为模板参数,我想只在T为Fooable时才启用成员函数

template <typename T>
class Bar
{
public:
    template // ???
        requires Fooable<T>
    void MemFun();
};

在概念TS或C 2a的C 17中是否可能?

解决方法

在概念TS和C 20设计中,函数都有一个可选的尾随require子句.因此,您不需要使您的成员函数成为约束它的模板:
void MemFun() requires Fooable<T>;

相关文章

对象的传值与返回说起函数,就不免要谈谈函数的参数和返回值...
从实现装饰者模式中思考C++指针和引用的选择最近在看...
关于vtordisp知多少?我相信不少人看到这篇文章,多半是来自...
那些陌生的C++关键字学过程序语言的人相信对关键字并...
命令行下的树形打印最近在处理代码分析问题时,需要将代码的...
虚函数与虚继承寻踪封装、继承、多态是面向对象语言的三大特...