gpt4 book ai didi

c++ - 模板函数指针

转载 作者:行者123 更新时间:2023-11-28 06:30:11 27 4
gpt4 key购买 nike

假设我们有通用函数指针:

template <class ArgT, class RetT, class F>
struct A {
F f;
public:
A(F f) : f(f) {}

RetT operator()(ArgT arg) { return f(arg); }
};

为什么会这样?

template <class ArgT, class RetT, class F>
class B {
A<ArgT, RetT, F> test;
};

...这不是吗?

class C {
template <class ArgT, class RetT, class F>
A<ArgT, RetT, F> test;
};

error C3857: 'C::test': 不允许使用多个模板参数列表

我需要像上一个示例(C 类)一样定义一个类,我该怎么做?

最佳答案

因为变量不能有模板。事实上只有类和函数可以有模板。

编辑:正如 Alan Stokes 所说,在 C++14 中,变量也可以有模板。

关于c++ - 模板函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27740681/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com