<?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[Override  List.Sort macht Probleme]]></title><description><![CDATA[<p>Hi,</p>
<p>Ich hab da n kleines Problem mit dem Überschreiben der List.sort methode</p>
<p>Ich habe eine List vom Typ CPerson (Eine Klasse wo nur vor und nachnamen gespeichert sind)<br />
Beim googeln hab ich gesehen dass die Leute das ungefähr so machen:</p>
<pre><code>bool compare(const CPerson *first,const CPerson *second)
{
return false;
}
int main
{
 list&lt;CPerson&gt; mylist;
 //Hier werden dann Personen geadded
 mylist.sort(compare)
}
</code></pre>
<p>Aber wenn ich das so Probiere kommt bei mir folgender Fehler:</p>
<pre><code>error no matching function for call to std::list&lt;CPerson, std::allocator&lt;CPerson&gt; ....
</code></pre>
<p>Kann mir da jemand weiterhelfen?</p>
<p>Ich kann falls nötig natürlich alle klassen hochladen.</p>
<p>Danke und Gruß,<br />
zottelhase</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/278366/override-list-sort-macht-probleme</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 11:06:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/278366.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 05 Dec 2010 15:41:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Override  List.Sort macht Probleme on Sun, 05 Dec 2010 15:41:14 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Ich hab da n kleines Problem mit dem Überschreiben der List.sort methode</p>
<p>Ich habe eine List vom Typ CPerson (Eine Klasse wo nur vor und nachnamen gespeichert sind)<br />
Beim googeln hab ich gesehen dass die Leute das ungefähr so machen:</p>
<pre><code>bool compare(const CPerson *first,const CPerson *second)
{
return false;
}
int main
{
 list&lt;CPerson&gt; mylist;
 //Hier werden dann Personen geadded
 mylist.sort(compare)
}
</code></pre>
<p>Aber wenn ich das so Probiere kommt bei mir folgender Fehler:</p>
<pre><code>error no matching function for call to std::list&lt;CPerson, std::allocator&lt;CPerson&gt; ....
</code></pre>
<p>Kann mir da jemand weiterhelfen?</p>
<p>Ich kann falls nötig natürlich alle klassen hochladen.</p>
<p>Danke und Gruß,<br />
zottelhase</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1990109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1990109</guid><dc:creator><![CDATA[Zottelhase]]></dc:creator><pubDate>Sun, 05 Dec 2010 15:41:14 GMT</pubDate></item><item><title><![CDATA[Reply to Override  List.Sort macht Probleme on Sun, 05 Dec 2010 15:49:53 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title="*)"
      alt="😉"
    /> Warum schneidest du einfach die Fehlermeldung ab? Wenn dir geholfen werden soll, bitte auch wirklich die ganze Meldung posten.<br />
<em>) CPerson ist nicht kompatibel mit CPerson</em> - das sind zwei verschiedene Typen. Daher wird wohl wahrscheinlich auch der Fehler rühren...<br />
Hier ein Link zur Doku:<br />
<a href="http://www.cplusplus.com/reference/stl/list/sort/" rel="nofollow">http://www.cplusplus.com/reference/stl/list/sort/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1990112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1990112</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sun, 05 Dec 2010 15:49:53 GMT</pubDate></item><item><title><![CDATA[Reply to Override  List.Sort macht Probleme on Sun, 05 Dec 2010 16:40:49 GMT]]></title><description><![CDATA[<p>Danke für die antwort, die neue Methode sieht jetzt so aus:</p>
<pre><code>bool compare(const CPerson first,const CPerson second)
{
return false;
}
</code></pre>
<p>Fehlermeldung jetzt ist:</p>
<pre><code>error: no matching function for call to ‘std::list&lt;CPerson, std::allocator&lt;CPerson&gt; &gt;::sort(&lt;unresolved overloaded function type&gt;)’

include/c++/4.4.1/bits/list.tcc:301: note: candidates are: void std::list&lt;_Tp, _Alloc&gt;::sort() [with _Tp = CPerson, _Alloc = std::allocator&lt;CPerson&gt;]

include/c++/4.4.1/bits/list.tcc:301: note: candidates are: void std::list&lt;_Tp, _Alloc&gt;::sort() [with _Tp = CPerson, _Alloc = std::allocator&lt;CPerson&gt;]
</code></pre>
<p>Ich versteh halt nicht ganz was bei mir der genaue Unteschied zu</p>
<p>dem Beispiel <a href="http://www.cplusplus.com/reference/stl/list/sort/" rel="nofollow">http://www.cplusplus.com/reference/stl/list/sort/</a> ist. Ausser dass ich ne eigene Klasse CPerson verwende.</p>
<p>Gruß,<br />
Zottelhase</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1990125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1990125</guid><dc:creator><![CDATA[Zottelhase]]></dc:creator><pubDate>Sun, 05 Dec 2010 16:40:49 GMT</pubDate></item><item><title><![CDATA[Reply to Override  List.Sort macht Probleme on Sun, 05 Dec 2010 17:05:18 GMT]]></title><description><![CDATA[<p>Kannst du mal ein Minimalbespiel erstellen, wenn dein Originalcode zu lange (&gt;100 Zeilen) ist? Man kann sonst nur raten. Denn irgendwo musst du was falsch machen, ist mir noch nie untergekommen, dass sort nicht klappt, wenn man alles richtig macht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1990132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1990132</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sun, 05 Dec 2010 17:05:18 GMT</pubDate></item><item><title><![CDATA[Reply to Override  List.Sort macht Probleme on Sun, 05 Dec 2010 17:24:12 GMT]]></title><description><![CDATA[<p>prinzipiell sollte dein Vorgehen funktionieren, auch wenn ich eher mit const-Referenzen arbeiten würde (beid er compare-Funktion),<br />
also<br />
bool compare(const CPerson&amp; first,const CPerson&amp; second)</p>
<p>so müssen für den vergleich keine kompletten Kopien angelegt werden.</p>
<p>als workaround könntest du std::sort aus &lt;algorithm&gt; verwenden:</p>
<pre><code class="language-cpp">std::list&lt;CPerson&gt; persons;
std::sort(persons.begin(), persons.end(), compare);
</code></pre>
<p>andere Option wäre, für CPerson den operator &lt; zu überladen, da std::list::sort den standardmäßig verwendet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1990138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1990138</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Sun, 05 Dec 2010 17:24:12 GMT</pubDate></item><item><title><![CDATA[Reply to Override  List.Sort macht Probleme on Sun, 05 Dec 2010 17:30:12 GMT]]></title><description><![CDATA[<p>Zottelhase schrieb:</p>
<blockquote>
<pre><code>error: no matching function for call to ‘std::list&lt;CPerson, std::allocator&lt;CPerson&gt; &gt;::sort(&lt;unresolved overloaded function type&gt;)’
</code></pre>
</blockquote>
<p>Es gibt anscheinend mehr als eine compare-Funktion sichtbar. Der Compiler weiß aber nicht, welche Du meintest. Quickfix: Umbenennen oder ein static_cast:</p>
<pre><code class="language-cpp">int foo(int);
double foo(double);

template&lt;class T&gt;
void sink(T);

int main()
{
  sink(foo);                // Fehler! Welches foo?
  sink(static_cast&lt;int(*)(int)&gt;(foo)); // OK
  int (*funptr)(int) = foo; // OK
  sink(funptr);             // OK
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1990140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1990140</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 05 Dec 2010 17:30:12 GMT</pubDate></item></channel></rss>