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;
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;
};