typedef int INT_TYPEDEF; template class TypedIfc { public: virtual ~TypedIfc() { } virtual operator const T&() const = 0; virtual const T& operator= (const T& t) = 0; }; template class NullIfc : public TypedIfc { public: const Tnative& operator= (const Tnative& t) { return t; } operator const Tnative&() const { return *(Tnative *)0; } }; typedef TypedIfc INT_TYPEDEFIfc; NullIfc i32;