I have implemented the following interface:
template
class Variable
{
public:
Variable (T v) : m_value (v) {}
virtual void Callback ()
You will have to add an overload of Callback in the base class that accepts these parameters. It would also be possible to do bad things, like accept a void*, or pass in a raw pointer-to-bytes. The only scenario in which it is valid to alter virtual function signature is when you override the return value to something polymorphic to the original return value, e.g. *this.