Guys, You were right, the extra "void" is incorrect in the code (sorry for the mistake), but you got the idea right. I basically want to "partially specialize the template class for the case when the second template argument is "void"" I did not want to do the specialization "manually" because the actual template class is quite long, and there is lot of stuff which depends on the second template argument but the only code which should be different is this virtual method declaration. So specializing it manually would double up the amount of code. So I thought I could use boost::enable_if, but this looks now that its not the case... Thanks a lot for your help guys. -- View this message in context: http://www.nabble.com/boost%3A%3Aenable_if%2C-did-I-get-it-wrong---tp2502791... Sent from the Boost - Users mailing list archive at Nabble.com.