Boost C++ Libraries: Ticket #12928: x3 cannot synthesize attribute of type boost::iterator_range in a sequence parser https://svn.boost.org/trac10/ticket/12928 <p> In a simple parser test <a class="ext-link" href="http://coliru.stacked-crooked.com/a/5b3bde9736c9fc43"><span class="icon">​</span>http://coliru.stacked-crooked.com/a/5b3bde9736c9fc43</a> </p> <p> </p> <pre class="wiki"> std::string str("x123x"); boost::iterator_range&lt;boost::range_iterator&lt;decltype(str)&gt;::type&gt; attr; if( x3::parse( boost::begin(str), boost::end(str), x3::lit('x') &gt;&gt; x3::raw[+x3::digit] &gt;&gt; x3::lit('x'), attr ) ) { std::cout&lt;&lt;"Match! attr = "&lt;&lt;attr&lt;&lt;std::endl; } else { std::cout&lt;&lt;"Not match!"&lt;&lt;std::endl; } </pre><p> </p> <p> <strong>x3::lit('x') &gt;&gt; x3::raw[+x3::digit] &gt;&gt; x3::lit('x')</strong> is supposed to synthesize an attribute of type boost::iterator_range&lt;Iterator&gt;. But it cannot compile. If we remove either of the two <strong>x3::lit('x')</strong>, it compiles. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/12928 Trac 1.4.3 mike.gresens@… Thu, 07 Dec 2017 12:07:20 GMT <link>https://svn.boost.org/trac10/ticket/12928#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/12928#comment:1</guid> <description> <p> Should be fixed in <a class="ext-link" href="https://github.com/boostorg/spirit/pull/316"><span class="icon">​</span>https://github.com/boostorg/spirit/pull/316</a> </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Joel de Guzman</dc:creator> <pubDate>Wed, 13 Dec 2017 23:01:56 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/12928#comment:2 https://svn.boost.org/trac10/ticket/12928#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">fixed</span> </li> </ul> Ticket