Boost C++ Libraries: Ticket #9803: Boost Spirit debugging complains about missing << operator if rule attributes are defined in a different namespace https://svn.boost.org/trac10/ticket/9803 <p> Assuming you have declared the attributes classes of your rules in a different namespace than your grammar with the rules. Now, when you use BOOST_SPIRIT_DEBUG_NODES compiler says that it misses operator&lt;&lt; for ostream and the attribute classes in the different namespace. Even if you define one in the namespace of the grammar it does not work. As the following link states it is not easy to define the operator in a proper way: <a class="ext-link" href="https://stackoverflow.com/questions/5286720/how-to-define-streaming-operator-for-boostspiritqi-and-stdlist-container"><span class="icon">​</span>https://stackoverflow.com/questions/5286720/how-to-define-streaming-operator-for-boostspiritqi-and-stdlist-container</a> </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/9803 Trac 1.4.3 Nikita Kniazev <nok.raven@…> Sun, 24 Dec 2017 22:56:34 GMT <link>https://svn.boost.org/trac10/ticket/9803#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/9803#comment:1</guid> <description> <p> You must place your <code>operator &lt;&lt;</code> in a namespace where your class is defined, otherwise ADL will not find it. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Joel de Guzman</dc:creator> <pubDate>Mon, 25 Dec 2017 23:27:04 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/9803#comment:2 https://svn.boost.org/trac10/ticket/9803#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">invalid</span> </li> </ul> Ticket