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