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&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...