<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Boost.Spirit -&amp;gt; Suche Template-Parameter von boost::fusion::vector&amp;lt;&amp;gt;]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgender Codeabschnitt:</p>
<pre><code class="language-cpp">url_parser() : qi::grammar&lt;Iterator&gt;(start){
    ...
    name = +(qi::alnum | qi::char_('-') | qi::char_('_'));
}
</code></pre>
<p>Wie erkenne ich hier, was die Template-Parameter des <code>boost::fusion::vector&lt;&gt;</code> sind? <code>boost::fusion::vector&lt;std::vector&lt;char&gt;&gt;</code> ist es jedenfalls nicht.</p>
<p>Gibt es vielleicht - so nebenbei - eine Methode, um selber bestimmen zu können, was <code>name</code> genau sein soll. In diesem Fall fände ich ein <code>std::string</code> am passendsten.</p>
<p>Also hier nochmal etwas Code, um zu verdeutlichen, was ich will:</p>
<pre><code class="language-cpp">template&lt;typename Iterator&gt;
class url_parser : public qi::grammar&lt;Iterator&gt;{
    ...

    void f(boost::fusion::vector&lt;std::vector&lt;char&gt;&gt; ) {} // falscher Datentyp. Hübsch fände ich std::string

public:
    url_parser() : qi::grammar&lt;Iterator&gt;(start){
        using std::placeholders::_1;

        name = +(qi::alnum | qi::char_('-') | qi::char_('_'))
                [std::bind(&amp;url_parser&lt;Iterator&gt;::f, this, _1)];
        ...
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/338883/boost-spirit-gt-suche-template-parameter-von-boost-fusion-vector-lt-gt</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 01:24:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/338883.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 18 Jul 2016 18:49:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Boost.Spirit -&amp;gt; Suche Template-Parameter von boost::fusion::vector&amp;lt;&amp;gt; on Mon, 18 Jul 2016 18:49:42 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgender Codeabschnitt:</p>
<pre><code class="language-cpp">url_parser() : qi::grammar&lt;Iterator&gt;(start){
    ...
    name = +(qi::alnum | qi::char_('-') | qi::char_('_'));
}
</code></pre>
<p>Wie erkenne ich hier, was die Template-Parameter des <code>boost::fusion::vector&lt;&gt;</code> sind? <code>boost::fusion::vector&lt;std::vector&lt;char&gt;&gt;</code> ist es jedenfalls nicht.</p>
<p>Gibt es vielleicht - so nebenbei - eine Methode, um selber bestimmen zu können, was <code>name</code> genau sein soll. In diesem Fall fände ich ein <code>std::string</code> am passendsten.</p>
<p>Also hier nochmal etwas Code, um zu verdeutlichen, was ich will:</p>
<pre><code class="language-cpp">template&lt;typename Iterator&gt;
class url_parser : public qi::grammar&lt;Iterator&gt;{
    ...

    void f(boost::fusion::vector&lt;std::vector&lt;char&gt;&gt; ) {} // falscher Datentyp. Hübsch fände ich std::string

public:
    url_parser() : qi::grammar&lt;Iterator&gt;(start){
        using std::placeholders::_1;

        name = +(qi::alnum | qi::char_('-') | qi::char_('_'))
                [std::bind(&amp;url_parser&lt;Iterator&gt;::f, this, _1)];
        ...
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2502712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2502712</guid><dc:creator><![CDATA[plastikbecher]]></dc:creator><pubDate>Mon, 18 Jul 2016 18:49:42 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Spirit -&amp;gt; Suche Template-Parameter von boost::fusion::vector&amp;lt;&amp;gt; on Tue, 19 Jul 2016 09:38:25 GMT]]></title><description><![CDATA[<p>In der Compilerfehlermeldung müßte doch der erwartete Datentyp stehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2502757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2502757</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Tue, 19 Jul 2016 09:38:25 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Spirit -&amp;gt; Suche Template-Parameter von boost::fusion::vector&amp;lt;&amp;gt; on Wed, 20 Jul 2016 12:24:33 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>der Fehler war, dass [] eher bindet, als +. Ich hab nun folgendes gemacht:</p>
<pre><code class="language-cpp">name = (+(qi::alnum | qi::char_('-') | qi::char_('_')))[...];
</code></pre>
<p>und nun klappts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2502873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2502873</guid><dc:creator><![CDATA[plastikbecher]]></dc:creator><pubDate>Wed, 20 Jul 2016 12:24:33 GMT</pubDate></item></channel></rss>