将模板函数用作另一个函数的模板参数



我想知道,我如何在c++中做以下事情?

template <typename T>
T doSomething(T x, T y) {
T result = /*do something*/;
return result;
}
template <typename T , typename V> 
T doMore(**input doSomething as template**, V v){
T result = doSomething<V>(v,0); 
return result;
}

我基本上试图在另一个函数中使用模板函数及其模板值类型,是否有任何方法可以做到这一点?

不能传递(集合)函数模板作为参数(但可以传递特定的实例化)。

你可以传递functor来解决你的问题:

template <typename T>
T doSomething(T x, T y) {
T result = /*do something*/;
return result;
}
template <typename F, typename V> 
T doMore(F f, V v){
T result = f(v, V{0}); 
return result;
}

doMore([](auto x, auto y){ return doSomething(x, y); }, 42);

相关内容

  • 没有找到相关文章

最新更新