【发布时间】:2021-11-26 15:12:14
【问题描述】:
我想知道,如何在 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;
}
我基本上是在尝试在另一个函数中使用带有模板值类型的模板函数,有什么办法吗?
【问题讨论】:
-
所以您想像
doMore(doSomething, some_v_value)一样使用doMore(请edit 澄清您的问题)?然后我建议您从标准库中获取提示,其中所有函数都使用单个模板化参数类型传递。我还建议您在调用中直接使用 lambdas 而不是doSomething。 -
您的描述确实令人困惑,尤其是因为您已经在
doMore中使用了doSomething。关于如何将任何类型的函数传递给doMore以便它可以在内部调用它的问题是什么? (然后你可能想重命名你在该函数中调用的内容)
标签: c++ function templates c++14 std-function