Ok, this approach looks better than overriding operator << for standard streams. It could be improved, for example by inheriting from std::ostream, which would automatically allow everything that defines a standard operator <<.
I have to think more about it.