我正在使用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