在另一个函数中使用模板函数作为模板参数
Using a template function as a template param in another function
我想知道如何在 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;
}
我基本上是在尝试在另一个函数中使用模板函数及其模板值类型,有什么办法可以做到这一点吗?
您不能将函数模板(的集合)作为参数传递(但您可以传递特定的实例化)。
您可以通过函子来解决您的问题:
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);
我想知道如何在 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;
}
我基本上是在尝试在另一个函数中使用模板函数及其模板值类型,有什么办法可以做到这一点吗?
您不能将函数模板(的集合)作为参数传递(但您可以传递特定的实例化)。
您可以通过函子来解决您的问题:
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);