Wrapperにインターフェイスを定義したベースクラスをくっつけてやればいいんじゃないの?

class BaseWrapper{ }

template <class T>
struct Wrapper : public BaseWrapper { };

struct Hoge { };


void Func(const BaseWrapper& arg)
{
}
的な。