我想知道,如何在 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;
}
我基本上是在嘗試在另一個函式中使用帶有模板值型別的模板函式,有什么辦法可以做到這一點?
uj5u.com熱心網友回復:
您不能將(一組)函式模板作為引數傳遞(盡管您可以傳遞特定的實體化)。
您可能會通過函子來解決您的問題:
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);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/312609.html
