gpt4 book ai didi

C++ 模板类来包装一个 whatever 函数

转载 作者:搜寻专家 更新时间:2023-10-31 01:40:09 24 4
gpt4 key购买 nike

我想包装任何输入/输出类型的函数。下面我尝试使用C++模板。

double foo(double x){return x*x;}

template <typename funct>
class TestFunction{
public:
TestFunction(const funct& userFunc): f(userFunc){}

private:
const funct& f;
};


template <typename funct>
TestFunction<funct> createTestFunction(const funct& f){
return TestFunction<funct>(f);
}


int main(){
TestFunction<> testFunc=createTestFunction(foo);

}

编译这个程序给我错误信息:

too few template arguments for class template 'TestFunction'

为什么 C++ 编译器无法推断 TestFunction<> 的类型?我该如何解决?谢谢。另外,有没有更简单的方法来做到这一点?

最佳答案

TestFunction<> testFunc = createTestFunction(foo);

应该是

auto testFunc = createTestFunction(foo);

关于C++ 模板类来包装一个 whatever 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30143010/

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