I looked into this when researching the 'endl' macro/ template (to show why newlines are faster than endl).
All the operator overload options:
For one we've all seen, cout uses overloaded operators... see the definition for << (insertion):
(the %3C are for <<, otherwise SoloLearn breaks the link)
Notice all the types it can handle.
I believe you can make more by adding a new signature (and + is one of the 38 supported operators)