<?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[Allgemeine Iteratoren?]]></title><description><![CDATA[<p>Hi,<br />
folgendes, ich hätte gerne eine Liste mit Funktoren(boost.function), die als Parameter einen Iterator dieser Liste nehmen. Das Problem ist, dass ich für den Iteratortyp den Typ der Liste kennen müsste, den ich aber nicht kennen kann, da der Typ der Liste vom Iteratortypen abhängt.<br />
Wie kann ich das lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/235267/allgemeine-iteratoren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 05:42:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235267.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Feb 2009 16:51:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Allgemeine Iteratoren? on Fri, 27 Feb 2009 16:51:50 GMT]]></title><description><![CDATA[<p>Hi,<br />
folgendes, ich hätte gerne eine Liste mit Funktoren(boost.function), die als Parameter einen Iterator dieser Liste nehmen. Das Problem ist, dass ich für den Iteratortyp den Typ der Liste kennen müsste, den ich aber nicht kennen kann, da der Typ der Liste vom Iteratortypen abhängt.<br />
Wie kann ich das lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671476</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Fri, 27 Feb 2009 16:51:50 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Iteratoren? on Mon, 02 Mar 2009 07:46:24 GMT]]></title><description><![CDATA[<p>JustAnotherNoob schrieb:</p>
<blockquote>
<p>Hi,<br />
folgendes, ich hätte gerne eine Liste mit Funktoren(boost.function), die als Parameter einen Iterator dieser Liste nehmen. Das Problem ist, dass ich für den Iteratortyp den Typ der Liste kennen müsste, den ich aber nicht kennen kann, da der Typ der Liste vom Iteratortypen abhängt.<br />
Wie kann ich das lösen?</p>
</blockquote>
<p>Ich bin mir zwar nicht so ganz sicher, ob ich Dein Problem richtig verstanden habe, aber ich denke, dass Dir evtl. <a href="http://www.boost.org/doc/libs/1_38_0/libs/range/index.html" rel="nofollow">boost.range</a> helfen hönnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1672630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1672630</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Mon, 02 Mar 2009 07:46:24 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Iteratoren? on Mon, 02 Mar 2009 08:30:48 GMT]]></title><description><![CDATA[<blockquote>
<p>Wie kann ich das lösen?</p>
</blockquote>
<p>Keine Ahnung, deine Problembeschreibung ist sehr duerftig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1672645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1672645</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 02 Mar 2009 08:30:48 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Iteratoren? on Mon, 02 Mar 2009 09:53:04 GMT]]></title><description><![CDATA[<p>Ich habe die Fragestellung auch mehrmals lesen müssen, bis ich wußte (oder glaube zu wissen?) worum es eigentlich geht.</p>
<p>Verstehe ich das richtig, daß du sowas hier machen möchtest (wenn es denn ginge)?</p>
<pre><code class="language-cpp">typedef std::list&lt;boost::function&lt;void (MyList::iterator)&gt; &gt; MyList;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1672701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1672701</guid><dc:creator><![CDATA[dooooomi]]></dc:creator><pubDate>Mon, 02 Mar 2009 09:53:04 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Iteratoren? on Mon, 02 Mar 2009 15:21:41 GMT]]></title><description><![CDATA[<p>Eine Idee in der Richtung: definiere dir ne eigene Iteratorklasse die mittels eines std::list-Iterators das Iterieren übernimmt:</p>
<pre><code class="language-cpp">class MyIterator : public boost::bidirectional_iterator_helper&lt;MyIterator,
                 boost::function&lt;void (MyIterator)&gt; &gt; //liefert Operatoren und standardkonforme Iterator-typedefs
{
public: 
  typedef std::list&lt;boost::function&lt;void (MyIterator)&gt; &gt;::iterator list_iterator;

  MyIterator(list_iterator it = list_iterator()) : it_(it) {}
  reference operator*() {return *it_;}
  MyIterator&amp; operator++() {++it_; return *this;}
  MyIterator&amp; operator--() {--it_; return *this;}

  operator list_iterator() {return it_;}

  friend bool operator== (MyIterator const&amp; lhs, MyIterator const&amp; rhs) {return lhs.it_ == rhs.it_}

private:
  list_iterator it_;
};
</code></pre>
<p>Voraussetzung ist, dass für boost::function&lt;void (MyIterator)&gt; die Klasse MyIterator noch nicht vollständig definiert sein muss.<br />
Sollte das der Fall sein könntest du schauen ob du daraus ein boost::function&lt;void (MyIterator&amp;)&gt; machen kannst und in den Funktionen den iterator entsprechend kopierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1672879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1672879</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 02 Mar 2009 15:21:41 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine Iteratoren? on Mon, 02 Mar 2009 17:31:51 GMT]]></title><description><![CDATA[<p>Naja...</p>
<pre><code class="language-cpp">struct MyIteratorWrapper;

typedef boost::function&lt;void (MyIteratorWrapper const*)&gt; Functor;

typedef std::list&lt;Functor&gt; FunctorList;

struct MyIteratorWrapper
{
    explicit MyIteratorWrapper(FunctorList::iterator const&amp; it) : m_it(it) {}
    FunctorList::iterator m_it;
};

void FunctionA(MyIteratorWrapper const* itw)
{
    FunctorList::iterator const&amp; it = itw-&gt;m_it;
}

void Test()
{
    FunctorList l;
    l.push_back(boost::bind(FunctionA, _1));

    MyIteratorWrapper itw(l.begin());
    l.front()(&amp;itw);
}
</code></pre>
<p>Allerdings finde ich das alles ziemlich unschön. Und ich kann mir auch nicht vorstellen wo man sowas jetzt brauchen würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1672985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1672985</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 02 Mar 2009 17:31:51 GMT</pubDate></item></channel></rss>