以模板作为模板参数的功能

冒险

如何将具有模板参数的函数传递给其他函数?

template <class _T>
void inc(int &x) {
    x++;
}

template <class FUNC>
void add(int &x, FUNC f) {
    f(x);
}

int main() {
    int x = 0;
    add(x, inc);
    return 0;
}

因此,我收到“错误:没有匹配的函数来调用'add'”。

f

inc是模板,而不是函数。您需要通过inc<int>

template <class _T>
void inc(int &x) {
    x++;
}

template <class FUNC>
void add(int &x, FUNC f) {
    f(x);
}

int main() {
    int x = 0;
    add(x, inc<int>);
    return 0;
}

(修复了f在主函数中而不是在添加中键入错误的问题。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

模板功能作为模板参数

来自分类Dev

模板功能作为模板参数

来自分类Dev

以模板作为模板参数的功能

来自分类Dev

在C ++中使用功能模板作为模板模板参数

来自分类Dev

使用模板参数作为功能参数

来自分类Dev

引用“自动”功能作为模板参数

来自分类Dev

在C ++中将功能模板作为参数传递

来自分类Dev

成员函数作为功能模板的参数

来自分类Dev

具体功能作为默认模板参数

来自分类Dev

使用模板作为参数时的功能模板特化

来自分类Dev

模板类作为模板参数

来自分类Dev

模板模板参数与功能模板的等效行为

来自分类Dev

模板模板参数与功能模板的等效行为

来自分类Dev

nullptr作为模板参数

来自分类Dev

模板作为参数类型

来自分类Dev

Lambda作为模板参数

来自分类Dev

模板类作为模板参数默认参数

来自分类Dev

模板参数作为其他模板的参数

来自分类Dev

功能模板参数

来自分类Dev

模板功能默认参数

来自分类Dev

将可变参数模板包作为功能规范

来自分类Dev

传递模板的模板成员类型作为模板模板参数

来自分类Dev

传递模板的模板成员类型作为模板模板参数

来自分类Dev

使用当前模板作为模板参数之一的模板参数

来自分类Dev

使用模板类作为模板参数

来自分类Dev

接受类型或模板作为其参数的模板

来自分类Dev

模板类作为模板类参数

来自分类Dev

模板函数指针作为模板参数

来自分类Dev

特性类作为模板模板参数