我正在使用VS 2008(抱歉,無法更新)。我需要模板專門化爲我的列表類。我想要專注的參數是成員函數指針。使用成員函數指針專用模板類
總之,我怎樣才能使下面的代碼工作(我不能使用可變參數模板):
// two or three args
template <typename T1, typename T2, void (T1::* FUNC)(const T2&) = 0> struct list;
// specialized code for 2 args.
template <typename T1, typename T2> struct list<T1, T2> { };
的錯誤信息是:
C2754: '專業化':將部分專業化不能有一個獨立的非模板參數
也許我的問題沒有解決方案。但這也是一個答案。
感謝您的幫助提前。
這可能是您將使用委託的那些實例之一。 http://msdn.microsoft.com/en-us/library/213x8e7w%28v=vs.90%29.aspx – Tebc
爲什麼你需要專業化?主模板具有默認參數,這意味着您可以忽略它。你想要達到什麼目的? –
如果成員函數指針爲空,我必須實現一個完整的不同列表類。並且希望將這兩個實現分開以使其具有乾淨的代碼(no if ... else)。 – zussel