Se per tipo generico intendi qualcosa tipo boost::any, no.
Se per tipo generico intendi una classe ottenuta tramite derivazione, puoi usare la classe base.
Del resto se fosse possibile, non esisterebbe boost::any, giusto?

(Tralascio il void* perché si perdono tutte le informazioni su come risalire al tipo corretto).