
Just another note, what is that suppose to be? typename boost::disable_if<boost::is_void< B >, void>::type
void virtual process(A *, B *) = 0;
It is not a return value or template argument. I hope I got right in the previous post what you were going to do, and said that it is not supported. On Tue, Aug 18, 2009 at 8:21 PM, Ovanes Markarian <om_boost@keywallet.com>wrote:
You can only apply enable_if to template arguments of the function and not of the class which contains the function, but you can't declare a virtual function template... So this is your dilemma.
Regards, Ovanes
On Tue, Aug 18, 2009 at 7:23 PM, topoden <_dvt_@mail.ru> wrote:
template<class A, class B> struct BaseListener { typename boost::disable_if<boost::is_void< B >, void>::type void virtual process(A *, B *) = 0;
typename boost::enable_if<boost::is_void< B >, void>::type void virtual process(A *) = 0; };