&gt; ...I&#x27;m just questioning whether this consistency buys you anything.<p>It buys you the same thing that API consistency <i>always</i> buys you: reduced cognitive overhead when dealing with a given API. :)<p>Edit: As GFK_of_xmaspast mentions [0] instances of non-trivial classes are <i>not</i> compatible with the default implementations of &quot;operator &lt;&lt;&quot; in ostream. So, you can try &quot;ostream &lt;&lt; instanceOfNonTrivial&quot;. If it passes the compiler, then you <i>know</i> that operator &lt;&lt; is defined for that class.<p>So, no need to check the docs... just ask the compiler. :)<p>[0] <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10775022" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10775022</a>