寫法如下(C++):
template<typname Ret, typename...Args>
struct MyTemplate<Ret(Args...)>
{
...
};
模板類名MyTemplate后邊的<Ret(Args...)>,Ret(Args...),乍一看,像是變長引數函式模板的呼叫,但細想感覺又不是,放在這里呼叫,起個什么作用啊。這種寫法,到底是什么意思?還望高手指教和詳細解答,謝謝。
uj5u.com熱心網友回復:
Ret(Args...)中,Ret是回傳型別,Args...是變長引數型別,那Ret(Args...) 整體就是一個函式原型,或者叫函式型別。聯想一下函式指標型別Ret(*)(Args...)。
代碼不全,估計template<typname Ret, typename...Args> struct MyTemplate<Ret(Args...)>是對template<typname T> struct MyTemplate的偏特化,把T偏特化成一個函式。
template<typename T>
struct MyTemplate
{
};
template<typename Ret, typename...Args>
struct MyTemplate<Ret(Args...)>
{
};
uj5u.com熱心網友回復:
感謝回復。。。
uj5u.com熱心網友回復:
你特么不會結貼的么轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107144.html
標籤:C++ 語言
上一篇:記憶體超限怎么解決
