讓我們asssume,我們有一個模板funcion:是否可以將函數模板作爲模板參數傳遞?
template<typename T1, typename T2, typename T3>
T3 such_fun(T1 a, T2 b) {
// do something...
}
,現在我們想用它作爲另一個模板參數,例如像那
template<typename T1, template<typename, typename, typename> some_function>
void big_fun(T1 a) {
// some code...
a = some_function<T1, T1, T1>(a, a);
// some code...
}
這可能嗎?
我知道,我可以使用與自定義()操作一個結構。我只是對功能很好奇。
編輯:
當我在寫這個問題,我的朋友發現的部分解決方案:
template<typename T1, T1 (*some_function)(T1, T1)>
void big_fun(T1 a) {
// some code...
a = some_function(a, a);
// some code...
}
但還是 - 我很好奇,如果有可能沒有一個功能型的前一個物化呼叫。例如 - 我可能想要調用各種類型組合通過的模板:
template<typename T1, typename T2, template<typename, typename, typename> some_function>
void big_fun(T1 a, T2 b) {
// some code...
a = some_function<T1, T1, T1>(a, a);
a = some_function<T1, T2, T1>(a, b);
b = some_function<T2, T2, T2>(b, b);
b = some_function<T2, T1, T2>(b, a);
// some code...
}
我不明白你在說什麼的話.. -1,你能爲我們提供的是不流利的standarese的ilustration? – lurscher 2012-02-24 17:58:33
@lurscher,因爲_you_不明白這是一個可怕的原因downvote。當量子物理學家談論量子物理學時,我不會低估它,因爲我不理解它。 – 2012-02-24 18:04:18
@SethCarnegie,我不同意。我認爲這本身就是一個很好的理由。此外,答案也是錯誤的;問題想要做什麼是完全可能的,即使在C++ 03中也是如此。我認爲SO的問題與pmr的回答之間存在脫節,因此存在倒退。如果他改善了他的回答,我會非常樂意撤回它 – lurscher 2012-02-24 18:19:40