<?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[Geloest: Boost::tokenizer::iterator Problem]]></title><description><![CDATA[<p>Hi,</p>
<p>ich wollte fuer mein Programm Boost::tokenizer bzw den iterator benutzen. Hab das so gemacht wie die das auf der Doc-Seite gamacht haben: <a href="http://www.boost.org/doc/libs/1_46_1/libs/tokenizer/char_separator.htm" rel="nofollow">Boost::tokenizer</a></p>
<p>Jetzt hab ich haber das Problem das der mir einen Fehler ausspuckt:</p>
<pre><code>'advance': Ist kein Element von 'boost::token_iterator&lt;TokenizerFunc,Iterator,Type&gt;'
</code></pre>
<p>Und meine Codeausschnitt hab ich jetzt auf das begrenzt:</p>
<pre><code class="language-cpp">boost::char_separator&lt;char&gt; Sep( NEW_LINE );
	boost::tokenizer&lt;boost::char_separator&lt;char&gt; &gt; Tokens( m_Headers, Sep);

	boost::tokenizer&lt;boost::char_separator&lt;char&gt; &gt;::iterator iter; /* &lt;-- fehler hier */
</code></pre>
<p>Ich versteh das ned :(.</p>
<p>Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/289233/geloest-boost-tokenizer-iterator-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 07:35:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/289233.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 30 Jun 2011 16:38:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Geloest: Boost::tokenizer::iterator Problem on Fri, 01 Jul 2011 18:46:39 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich wollte fuer mein Programm Boost::tokenizer bzw den iterator benutzen. Hab das so gemacht wie die das auf der Doc-Seite gamacht haben: <a href="http://www.boost.org/doc/libs/1_46_1/libs/tokenizer/char_separator.htm" rel="nofollow">Boost::tokenizer</a></p>
<p>Jetzt hab ich haber das Problem das der mir einen Fehler ausspuckt:</p>
<pre><code>'advance': Ist kein Element von 'boost::token_iterator&lt;TokenizerFunc,Iterator,Type&gt;'
</code></pre>
<p>Und meine Codeausschnitt hab ich jetzt auf das begrenzt:</p>
<pre><code class="language-cpp">boost::char_separator&lt;char&gt; Sep( NEW_LINE );
	boost::tokenizer&lt;boost::char_separator&lt;char&gt; &gt; Tokens( m_Headers, Sep);

	boost::tokenizer&lt;boost::char_separator&lt;char&gt; &gt;::iterator iter; /* &lt;-- fehler hier */
</code></pre>
<p>Ich versteh das ned :(.</p>
<p>Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2086749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2086749</guid><dc:creator><![CDATA[C0de4Fun]]></dc:creator><pubDate>Fri, 01 Jul 2011 18:46:39 GMT</pubDate></item><item><title><![CDATA[Reply to Geloest: Boost::tokenizer::iterator Problem on Thu, 30 Jun 2011 16:44:09 GMT]]></title><description><![CDATA[<p>Bitte poste ein kompilierbares Beispiel mit dem Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2086752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2086752</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Thu, 30 Jun 2011 16:44:09 GMT</pubDate></item><item><title><![CDATA[Reply to Geloest: Boost::tokenizer::iterator Problem on Thu, 30 Jun 2011 17:11:04 GMT]]></title><description><![CDATA[<p>Hmm ja schwierig. Hab jetzt den gleichen Code einfach mal in die Main geklatscht und hat einwanfrei funktioniert.</p>
<pre><code class="language-cpp">#include &lt;boost\tokenizer.hpp&gt;
#include &lt;string&gt;

class Parser
  {
    public:
                Parser() { Test(); };
    protected:
        typedef boost::tokenizer&lt;boost::char_separator&lt;char&gt; &gt; tokenizer;

        void Test();
/*.....*/

        std::string m_Head;
        std::string m_Headers;
        std::string m_Data;
    };

void Parser::Test()
{
    boost::char_separator&lt;char&gt; Sep( &quot; &quot; );
    tokenizer Tokens( m_Head, Sep);
    tokenizer::iterator iter = Tokens.begin();   
}

int main(int argc, char** argv)
{
	Parser parse;
}
</code></pre>
<p>Wenn ich jetzt aber denn Code in ein neues Projekt kopiert, geht auch alles. In meinem Hauptprojekt sind halt noch ein paar weiter Methoden und Variablen, aber an denn kanns ja ned liegen oder!?</p>
<p>Ich bin total verwirrt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2086769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2086769</guid><dc:creator><![CDATA[C0de4Fun]]></dc:creator><pubDate>Thu, 30 Jun 2011 17:11:04 GMT</pubDate></item><item><title><![CDATA[Reply to Geloest: Boost::tokenizer::iterator Problem on Thu, 30 Jun 2011 17:14:10 GMT]]></title><description><![CDATA[<p>C0de4Fun schrieb:</p>
<blockquote>
<p>In meinem Hauptprojekt sind halt noch ein paar weiter Methoden und Variablen, aber an denn kanns ja ned liegen oder!?</p>
</blockquote>
<p>Der einzige Unterschied zwischen nicht-funktionierend und funktionierend sind also diese Methoden und Variablen? Dann kann ich deine Schlussfolgerungen nicht nachvollziehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2086771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2086771</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 30 Jun 2011 17:14:10 GMT</pubDate></item><item><title><![CDATA[Reply to Geloest: Boost::tokenizer::iterator Problem on Thu, 30 Jun 2011 17:19:36 GMT]]></title><description><![CDATA[<p>Falls die ganze Fehlermeldung was hilft:</p>
<pre><code>d:\programming\cpp_programs\library\boost_1_45_0\boost\iterator\iterator_facade.hpp(546): error C2039: 'advance': Ist kein Element von 'boost::token_iterator&lt;TokenizerFunc,Iterator,Type&gt;'
1&gt;          with
1&gt;          [
1&gt;              TokenizerFunc=boost::char_separator&lt;char&gt;,
1&gt;              Iterator=std::_String_const_iterator&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;,
1&gt;              Type=std::string
1&gt;          ]
1&gt;          d:\programming\cpp_programs\library\boost_1_45_0\boost\iterator\iterator_facade.hpp(694): Siehe Verweis auf die Instanziierung der gerade kompilierten Funktions-template &quot;void boost::iterator_core_access::advance&lt;Derived&gt;(Facade &amp;,__w64 int)&quot;.
1&gt;          with
1&gt;          [
1&gt;              Derived=boost::token_iterator&lt;boost::char_separator&lt;char&gt;,std::_String_const_iterator&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;,std::string&gt;,
1&gt;              Facade=boost::token_iterator&lt;boost::char_separator&lt;char&gt;,std::_String_const_iterator&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;,std::string&gt;
1&gt;          ]
1&gt;          d:\programming\cpp_programs\library\boost_1_45_0\boost\iterator\iterator_facade.hpp(693): Bei der Kompilierung der  Klassen-template der boost::token_iterator&lt;TokenizerFunc,Iterator,Type&gt; &amp;boost::iterator_facade&lt;Derived,Value,CategoryOrTraversal,Reference&gt;::operator +=(__w64 int)-Memberfunktion
1&gt;          with
1&gt;          [
1&gt;              TokenizerFunc=boost::char_separator&lt;char&gt;,
1&gt;              Iterator=std::_String_const_iterator&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;,
1&gt;              Type=std::string,
1&gt;              Derived=boost::token_iterator&lt;boost::char_separator&lt;char&gt;,std::_String_const_iterator&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;,std::string&gt;,
1&gt;              Value=std::string,
1&gt;              CategoryOrTraversal=boost::forward_traversal_tag,
1&gt;              Reference=const std::string &amp;
1&gt;          ]
1&gt;          d:\programming\cpp_programs\library\boost_1_45_0\boost\token_iterator.hpp(40): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template &quot;boost::iterator_facade&lt;Derived,Value,CategoryOrTraversal,Reference&gt;&quot;.
1&gt;          with
1&gt;          [
1&gt;              Derived=boost::token_iterator&lt;boost::char_separator&lt;char&gt;,std::_String_const_iterator&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;,std::string&gt;,
1&gt;              Value=std::string,
1&gt;              CategoryOrTraversal=boost::forward_traversal_tag,
1&gt;              Reference=const std::string &amp;
1&gt;          ]
1&gt;          d:\programming\cpp_programs\library\source\network\http.cpp(96): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template &quot;boost::token_iterator&lt;TokenizerFunc,Iterator,Type&gt;&quot;.
1&gt;          with
1&gt;          [
1&gt;              TokenizerFunc=boost::char_separator&lt;char&gt;,
1&gt;              Iterator=std::_String_const_iterator&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;,
1&gt;              Type=std::string
1&gt;          ]
</code></pre>
<p>SeppJ schrieb:</p>
<blockquote>
<p>C0de4Fun schrieb:</p>
<blockquote>
<p>In meinem Hauptprojekt sind halt noch ein paar weiter Methoden und Variablen, aber an denn kanns ja ned liegen oder!?</p>
</blockquote>
<p>Der einzige Unterschied zwischen nicht-funktionierend und funktionierend sind also diese Methoden und Variablen? Dann kann ich deine Schlussfolgerungen nicht nachvollziehen.</p>
</blockquote>
<p><s>Joa jetzt ist das 2te komische das ich eine abgeleitete Klasse habe in dessen Methoden ich auch den tokenizer benutzt und da kommen auch keine Fehlermeldungen</s><br />
Geht doch ned lag wohl dran das ich vorher keine Instanz davon erzeugt habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2086773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2086773</guid><dc:creator><![CDATA[C0de4Fun]]></dc:creator><pubDate>Thu, 30 Jun 2011 17:19:36 GMT</pubDate></item><item><title><![CDATA[Reply to Geloest: Boost::tokenizer::iterator Problem on Fri, 01 Jul 2011 18:46:24 GMT]]></title><description><![CDATA[<p>Also Leute ich hab jetzt des Raetsels Loesung gefunden.</p>
<p>Ich hatte in einer Methode das hier stehen:</p>
<pre><code class="language-cpp">bool RequestParser::SetData( std::string Data, DataMap&amp; Map)
{

	boost::char_separator&lt;char&gt; Sep( &quot;&amp;=&quot;, &quot;&quot;, boost::keep_empty_tokens );
	http::tokenizer Tokens( Data, Sep);
	tokenizer::iterator iter = Tokens.begin();
	tokenizer::iterator iterTmp;

	for( ; iter != Tokens.end(); iter += 2)
	{
		if( (iter + 1) != Tokens.end() )
		{

			#ifdef UNICODE 
			Map[ ConvertStr( *iter ) ] = ConvertStr( *(iter+1) );
			#else
			Map[ *iter ] = *(iter+1 );
			#endif

		}
		else
		{
			LOG4CPLUS_ERROR( m_Logger, _T(&quot;Error with the data parsing&quot;) );
			m_Error = PARSE_ERROR;
			return false;
		}
     }
	m_Error = PARSE_SUCCESS;
	return true;

}
</code></pre>
<p>Na wer erkennt den Fehler?</p>
<pre><code class="language-cpp">iter += 2
/*bzw*/
(iter + 1)
</code></pre>
<p>is wohl auch fuer die boost iteratoren verboten.<br />
Hab jetzt grad noch im C++ Primer nachgelesen und das steht auch:</p>
<p>c++ primer schrieb:</p>
<blockquote>
<p>Std Container iterator Operations:</p>
<p>*iter<br />
iter-&gt;mem<br />
++iter<br />
iter++<br />
/*gleiche fuer --*/<br />
iter1 == iter2<br />
iter1 != iter2</p>
</blockquote>
<p>und nur speziel fuer vector bzw deque iterators:</p>
<p>c++ primer schrieb:</p>
<blockquote>
<p>iter + n<br />
iter - n<br />
iter += n<br />
iter -= n<br />
iter1 - iter2<br />
&lt;,&lt;=,&gt;,&gt;=</p>
</blockquote>
<p>Nagut jetzt bin ich au um ein Stueckchen klueger.</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2087392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2087392</guid><dc:creator><![CDATA[C0de4Fun]]></dc:creator><pubDate>Fri, 01 Jul 2011 18:46:24 GMT</pubDate></item></channel></rss>