Templated operator problem

I have a base class that has the following 2 operators:
void operator<<(const void* Buf);
void operator>>(void* Buf);

In 2 derived classes I have:
template <class T> void operator<<(const T Buf);
template <class T> void operator>>(T Buf);

The 2 operators need to operate in a completely different manner in each derived class and in a different manner in the base class. The template needs to support all primitive types.While the base class needs to support pointers to unknown sized buffers.
The problem is that that the template overrides the base class operator. Is there any way to solve this problem?
On the face of it, it doesn't make sense to provide:
void operator<<(const void* Buf);
void operator>>(void* Buf);

Further more, I'd expect references in:
template <class T> void operator<<(const T Buf);
template <class T> void operator>>(T Buf);

You seem to be mixing inheritance with templates.

All of the above can be problems in themselves.
Topic archived. No new replies allowed.