<?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[Kleiner-Operator zum Sortieren überladen]]></title><description><![CDATA[<p>Servus,</p>
<p>ich versuche mich gerade daran meinen Vektor aus eigenen Strukturen zu sortieren und habe ein kleines Beispiel gebastelt, welches nicht laufen will ...</p>
<p>Es gibt hier einen guten Artikel zur Operator-Überladung, aber bei diesem Operator hat mir das nicht geholfen, siehe <a href="http://www.c-plusplus.net/forum/232010" rel="nofollow">http://www.c-plusplus.net/forum/232010</a> .</p>
<p>Hier ist der Code, das erste Sortieren mit den integers geht, das Sortieren des zweiten Vektors (v2) scheitert. Die dortigen drei Elemente sollen nach der integer-Eigenschaft 'Wert' sortiert werden.</p>
<p>Danke vorab für etwaige Tipps!</p>
<p>Hier die main.cpp</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;vector&gt;

using namespace std;

struct s
{
    string name;
    int  wert;

    // Operator-Überladung zum Sortieren
    bool operator&lt; ( s const&amp; rhs )
    {
        return ( wert &lt; rhs.wert );
    }
};

/*
 * 
 */
int main(int argc, char** argv) {
    cout &lt;&lt; &quot; Start Spielwiese ... &quot; &lt;&lt; endl;

    vector&lt;int&gt; v;
    v.push_back( 2 );
    v.push_back( 3 );
    v.push_back( 1 );
    v.push_back( 5 );
    v.push_back( 6 );
    v.push_back( 4 );

    cout &lt;&lt; &quot;  Ausgabe der Liste:\n&quot;;
    vector&lt;int&gt;::const_iterator iter1 = v.begin();
    int c1 = 0;
    while (iter1 != v.end() )
    {
        cout &lt;&lt; &quot;   Lauf ... Item (&quot;;
        cout &lt;&lt; c1 &lt;&lt; &quot;): &quot;;
        cout &lt;&lt; *iter1 &lt;&lt; &quot;;\n&quot;;
        ++iter1;
        c1++;
    }

    // Sortierung
    sort( v.begin(), v.end() );

    cout &lt;&lt; &quot;  Ausgabe der Liste:\n&quot;;
    vector&lt;int&gt;::const_iterator iter2 = v.begin();
    int c2 = 0;
    while (iter2 != v.end() )
    {
        cout &lt;&lt; &quot;   Lauf ... Item (&quot;;
        cout &lt;&lt; c2 &lt;&lt; &quot;): &quot;;
        cout &lt;&lt; *iter2 &lt;&lt; &quot;;\n&quot;;
        ++iter2;
        c2++;
    }

    // Lauf mit Strukturen
    s s1;
    s1.name = &quot;Item-Eins&quot;;
    s1.wert = 2;
    s s2;
    s2.name = &quot;Item-Zwei&quot;;
    s2.wert = 3;
    s s3;
    s3.name = &quot;Item-Drei&quot;;
    s3.wert = 1;

    vector&lt;s&gt; v2;
    v2.push_back( s1 );
    v2.push_back( s2 );
    v2.push_back( s3 );

    cout &lt;&lt; &quot;Ausgabe der Listen:\n&quot;;
    vector&lt;s&gt;::const_iterator iter3 = v2.begin();
    int c3 = 0;
    while (iter3 != v2.end())
    {
        cout &lt;&lt; &quot; Lauf ... Item (&quot;;
        cout &lt;&lt; c3 &lt;&lt; &quot;): &quot;;
        cout &lt;&lt; iter3-&gt;name &lt;&lt; &quot; - &quot;;
        cout &lt;&lt; iter3-&gt;wert &lt;&lt; &quot;;\n&quot;;
        ++iter3;
        c3++;
    }

    // ***************** HIER IST DER FEHLER ************************
    // Sortierung
    sort( v2.begin(), v2.end() );
    // **************************************************************

    cout &lt;&lt; &quot;Ausgabe der Listen:\n&quot;;
    vector&lt;s&gt;::const_iterator iter4 = v2.begin();
    int c4 = 0;
    while (iter4 != v2.end()) {
        cout &lt;&lt; &quot; Lauf ... Item (&quot;;
        cout &lt;&lt; c4 &lt;&lt; &quot;): &quot;;
        cout &lt;&lt; iter4-&gt;name &lt;&lt; &quot; - &quot;;
        cout &lt;&lt; iter4-&gt;wert &lt;&lt; &quot;;\n&quot;;
        ++iter4;
        c4++;
    }

    cout &lt;&lt; &quot; ... ENDE&quot; &lt;&lt; endl;
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/286240/kleiner-operator-zum-sortieren-überladen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 23:57:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286240.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 May 2011 09:42:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 09:43:28 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>ich versuche mich gerade daran meinen Vektor aus eigenen Strukturen zu sortieren und habe ein kleines Beispiel gebastelt, welches nicht laufen will ...</p>
<p>Es gibt hier einen guten Artikel zur Operator-Überladung, aber bei diesem Operator hat mir das nicht geholfen, siehe <a href="http://www.c-plusplus.net/forum/232010" rel="nofollow">http://www.c-plusplus.net/forum/232010</a> .</p>
<p>Hier ist der Code, das erste Sortieren mit den integers geht, das Sortieren des zweiten Vektors (v2) scheitert. Die dortigen drei Elemente sollen nach der integer-Eigenschaft 'Wert' sortiert werden.</p>
<p>Danke vorab für etwaige Tipps!</p>
<p>Hier die main.cpp</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;vector&gt;

using namespace std;

struct s
{
    string name;
    int  wert;

    // Operator-Überladung zum Sortieren
    bool operator&lt; ( s const&amp; rhs )
    {
        return ( wert &lt; rhs.wert );
    }
};

/*
 * 
 */
int main(int argc, char** argv) {
    cout &lt;&lt; &quot; Start Spielwiese ... &quot; &lt;&lt; endl;

    vector&lt;int&gt; v;
    v.push_back( 2 );
    v.push_back( 3 );
    v.push_back( 1 );
    v.push_back( 5 );
    v.push_back( 6 );
    v.push_back( 4 );

    cout &lt;&lt; &quot;  Ausgabe der Liste:\n&quot;;
    vector&lt;int&gt;::const_iterator iter1 = v.begin();
    int c1 = 0;
    while (iter1 != v.end() )
    {
        cout &lt;&lt; &quot;   Lauf ... Item (&quot;;
        cout &lt;&lt; c1 &lt;&lt; &quot;): &quot;;
        cout &lt;&lt; *iter1 &lt;&lt; &quot;;\n&quot;;
        ++iter1;
        c1++;
    }

    // Sortierung
    sort( v.begin(), v.end() );

    cout &lt;&lt; &quot;  Ausgabe der Liste:\n&quot;;
    vector&lt;int&gt;::const_iterator iter2 = v.begin();
    int c2 = 0;
    while (iter2 != v.end() )
    {
        cout &lt;&lt; &quot;   Lauf ... Item (&quot;;
        cout &lt;&lt; c2 &lt;&lt; &quot;): &quot;;
        cout &lt;&lt; *iter2 &lt;&lt; &quot;;\n&quot;;
        ++iter2;
        c2++;
    }

    // Lauf mit Strukturen
    s s1;
    s1.name = &quot;Item-Eins&quot;;
    s1.wert = 2;
    s s2;
    s2.name = &quot;Item-Zwei&quot;;
    s2.wert = 3;
    s s3;
    s3.name = &quot;Item-Drei&quot;;
    s3.wert = 1;

    vector&lt;s&gt; v2;
    v2.push_back( s1 );
    v2.push_back( s2 );
    v2.push_back( s3 );

    cout &lt;&lt; &quot;Ausgabe der Listen:\n&quot;;
    vector&lt;s&gt;::const_iterator iter3 = v2.begin();
    int c3 = 0;
    while (iter3 != v2.end())
    {
        cout &lt;&lt; &quot; Lauf ... Item (&quot;;
        cout &lt;&lt; c3 &lt;&lt; &quot;): &quot;;
        cout &lt;&lt; iter3-&gt;name &lt;&lt; &quot; - &quot;;
        cout &lt;&lt; iter3-&gt;wert &lt;&lt; &quot;;\n&quot;;
        ++iter3;
        c3++;
    }

    // ***************** HIER IST DER FEHLER ************************
    // Sortierung
    sort( v2.begin(), v2.end() );
    // **************************************************************

    cout &lt;&lt; &quot;Ausgabe der Listen:\n&quot;;
    vector&lt;s&gt;::const_iterator iter4 = v2.begin();
    int c4 = 0;
    while (iter4 != v2.end()) {
        cout &lt;&lt; &quot; Lauf ... Item (&quot;;
        cout &lt;&lt; c4 &lt;&lt; &quot;): &quot;;
        cout &lt;&lt; iter4-&gt;name &lt;&lt; &quot; - &quot;;
        cout &lt;&lt; iter4-&gt;wert &lt;&lt; &quot;;\n&quot;;
        ++iter4;
        c4++;
    }

    cout &lt;&lt; &quot; ... ENDE&quot; &lt;&lt; endl;
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2059404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059404</guid><dc:creator><![CDATA[Jay1980]]></dc:creator><pubDate>Fri, 06 May 2011 09:43:28 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 09:47:36 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">// ***************** HIER IST DER FEHLER ************************
</code></pre>
<p>Und wie lautet der?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059406</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 06 May 2011 09:47:36 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 09:49:27 GMT]]></title><description><![CDATA[<p>Mach den Operator const. Oder besser noch: Mach eine freie Funktion draus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059407</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 06 May 2011 09:49:27 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 09:50:15 GMT]]></title><description><![CDATA[<p>from main.cpp:8:<br />
/usr/include/c++/4.4/bits/stl_algo.h: In function ‘const _Tp&amp; std::__median(const _Tp&amp;, const _Tp&amp;, const _Tp&amp;) [with _Tp = s]’:<br />
In file included from /usr/include/c++/4.4/algorithm:62,<br />
/usr/include/c++/4.4/bits/stl_algo.h:2268: instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;, _Size = int]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:5220: instantiated from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
main.cpp:98: instantiated from here<br />
/usr/include/c++/4.4/bits/stl_algo.h:89: error: passing ‘const s’ as ‘this’ argument of ‘bool s::operator&lt;(const s&amp;)’ discards qualifiers<br />
/usr/include/c++/4.4/bits/stl_algo.h:90: error: passing ‘const s’ as ‘this’ argument of ‘bool s::operator&lt;(const s&amp;)’ discards qualifiers<br />
/usr/include/c++/4.4/bits/stl_algo.h:92: error: passing ‘const s’ as ‘this’ argument of ‘bool s::operator&lt;(const s&amp;)’ discards qualifiers<br />
/usr/include/c++/4.4/bits/stl_algo.h:96: error: passing ‘const s’ as ‘this’ argument of ‘bool s::operator&lt;(const s&amp;)’ discards qualifiers<br />
/usr/include/c++/4.4/bits/stl_algo.h:98: error: passing ‘const s’ as ‘this’ argument of ‘bool s::operator&lt;(const s&amp;)’ discards qualifiers<br />
make[2]: *** [build/Debug/GNU-Linux-x86/main.o] Fehler 1<br />
make[1]: *** [.build-conf] Fehler 2<br />
make: *** [.build-impl] Fehler 2</p>
<p>BUILD FAILED (exit value 2, total time: 1s)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059408</guid><dc:creator><![CDATA[Jay1980]]></dc:creator><pubDate>Fri, 06 May 2011 09:50:15 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 09:56:39 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Mach den Operator const. Oder besser noch: Mach eine freie Funktion draus.</p>
</blockquote>
<p>Kurzes Beispiel bitte, wenn möglich eine Zeile Code - ich kann mit 'freier Funktion' nicht wirklich was anfangen. Ich stieß auf diesen Link zu freien Funktionen, verstehe aber nicht, was daran der Vor- bzw. Nachteil ist und überhaupt wie das in meinem Fall dann gemeint ist:<br />
<a href="http://velociraptor.mni.fh-giessen.de/Programmierung/ProgII-htmldir/node2.html#SECTION00024100000000000000" rel="nofollow">http://velociraptor.mni.fh-giessen.de/Programmierung/ProgII-htmldir/node2.html#SECTION00024100000000000000</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059410</guid><dc:creator><![CDATA[Jay1980]]></dc:creator><pubDate>Fri, 06 May 2011 09:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 10:05:45 GMT]]></title><description><![CDATA[<p>Habe es nun mal so als 'freie Funktion' versucht:</p>
<pre><code class="language-cpp">// Operator-Überladung
const s operator &lt; ( s const&amp; lhs, s const&amp; rhs )
{
    if ( lhs.wert &lt; rhs.wert ){ return lhs; }
    else { return rhs; }  
}
</code></pre>
<p>Fehler der kommt ist:<br />
from main.cpp:8:<br />
/usr/include/c++/4.4/bits/stl_algo.h: In function ‘const _Tp&amp; std::__median(const _Tp&amp;, const _Tp&amp;, const _Tp&amp;) [with _Tp = s]’:<br />
In file included from /usr/include/c++/4.4/algorithm:62,<br />
/usr/include/c++/4.4/bits/stl_algo.h:2268: instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;, _Size = int]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:5220: instantiated from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
main.cpp<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4af.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--hundred_points"
      title=":100:"
      alt="💯"
    /> instantiated from here<br />
/usr/include/c++/4.4/bits/stl_algo.h:89: error: could not convert ‘operator&lt;(const s&amp;, const s&amp;)(((const s&amp;)((const s*)__b)))’ to ‘bool’<br />
/usr/include/c++/4.4/bits/stl_algo.h:90: error: could not convert ‘operator&lt;(const s&amp;, const s&amp;)(((const s&amp;)((const s*)__c)))’ to ‘bool’<br />
/usr/include/c++/4.4/bits/stl_algo.h:92: error: could not convert ‘operator&lt;(const s&amp;, const s&amp;)(((const s&amp;)((const s*)__c)))’ to ‘bool’<br />
/usr/include/c++/4.4/bits/stl_algo.h:96: error: could not convert ‘operator&lt;(const s&amp;, const s&amp;)(((const s&amp;)((const s*)__c)))’ to ‘bool’<br />
/usr/include/c++/4.4/bits/stl_algo.h:98: error: could not convert ‘operator&lt;(const s&amp;, const s&amp;)(((const s&amp;)((const s*)__c)))’ to ‘bool’<br />
make[2]: Verlasse Verzeichnis '/home/jay/gtd08042010/begleitend/fu-hagen/masterarbeit/h2r_bioinf/workspace-21122010/spielwiese'<br />
make[1]: Verlasse Verzeichnis '/home/jay/gtd08042010/begleitend/fu-hagen/masterarbeit/h2r_bioinf/workspace-21122010/spielwiese'<br />
/usr/include/c++/4.4/bits/stl_algo.h: In function ‘_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, _Tp) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;, _Tp = s]’:<br />
/usr/include/c++/4.4/bits/stl_algo.h:2268: instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;, _Size = int]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:5220: instantiated from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
main.cpp<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4af.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--hundred_points"
      title=":100:"
      alt="💯"
    /> instantiated from here<br />
/usr/include/c++/4.4/bits/stl_algo.h:2209: error: could not convert ‘operator&lt;(const s&amp;, const s&amp;)(((const s&amp;)((const s*)(&amp; __pivot))))’ to ‘bool’<br />
/usr/include/c++/4.4/bits/stl_algo.h:2268: instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;, _Size = int]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:5220: instantiated from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
main.cpp<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4af.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--hundred_points"
      title=":100:"
      alt="💯"
    /> instantiated from here<br />
/usr/include/c++/4.4/bits/stl_algo.h:2212: error: could not convert ‘operator&lt;(const s&amp;, const s&amp;)(((const s&amp;)((const s*)__last.__gnu_cxx::__normal_iterator&lt;_Iterator, _Container&gt;::operator* [with _Iterator = s*, _Container = std::vector&lt;s, std::allocator&lt;s&gt; &gt;]())))’ to ‘bool’<br />
/usr/include/c++/4.4/bits/stl_algo.h: In function ‘void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’:<br />
/usr/include/c++/4.4/bits/stl_algo.h:2178: instantiated from ‘void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:5222: instantiated from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
main.cpp<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4af.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--hundred_points"
      title=":100:"
      alt="💯"
    /> instantiated from here<br />
/usr/include/c++/4.4/bits/stl_algo.h:2106: error: could not convert ‘operator&lt;(const s&amp;, const s&amp;)(((const s&amp;)((const s*)__first.__gnu_cxx::__normal_iterator&lt;_Iterator, _Container&gt;::operator* [with _Iterator = s*, _Container = std::vector&lt;s, std::allocator&lt;s&gt; &gt;]())))’ to ‘bool’<br />
/usr/include/c++/4.4/bits/stl_algo.h: In function ‘void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’:<br />
/usr/include/c++/4.4/bits/stl_algo.h:5067: instantiated from ‘void std::partial_sort(_RAIter, _RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:2256: instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;, _Size = int]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:5220: instantiated from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
main.cpp<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4af.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--hundred_points"
      title=":100:"
      alt="💯"
    /> instantiated from here<br />
/usr/include/c++/4.4/bits/stl_algo.h:1906: error: could not convert ‘operator&lt;(const s&amp;, const s&amp;)(((const s&amp;)((const s*)__first.__gnu_cxx::__normal_iterator&lt;_Iterator, _Container&gt;::operator* [with _Iterator = s*, _Container = std::vector&lt;s, std::allocator&lt;s&gt; &gt;]())))’ to ‘bool’<br />
/usr/include/c++/4.4/bits/stl_algo.h: In function ‘void std::__unguarded_linear_insert(_RandomAccessIterator, _Tp) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;, _Tp = s]’:<br />
/usr/include/c++/4.4/bits/stl_algo.h:2112: instantiated from ‘void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:2178: instantiated from ‘void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:5222: instantiated from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
main.cpp<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4af.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--hundred_points"
      title=":100:"
      alt="💯"
    /> instantiated from here<br />
/usr/include/c++/4.4/bits/stl_algo.h:2067: error: could not convert ‘operator&lt;(const s&amp;, const s&amp;)(((const s&amp;)((const s*)__next.__gnu_cxx::__normal_iterator&lt;_Iterator, _Container&gt;::operator* [with _Iterator = s*, _Container = std::vector&lt;s, std::allocator&lt;s&gt; &gt;]())))’ to ‘bool’<br />
from /usr/include/c++/4.4/algorithm:62,<br />
from main.cpp:8:<br />
/usr/include/c++/4.4/bits/stl_heap.h: In function ‘void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;, _Distance = int, _Tp = s]’:<br />
In file included from /usr/include/c++/4.4/bits/stl_algo.h:62,<br />
/usr/include/c++/4.4/bits/stl_heap.h:394: instantiated from ‘void std::make_heap(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:1904: instantiated from ‘void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:5067: instantiated from ‘void std::partial_sort(_RAIter, _RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:2256: instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;, _Size = int]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:5220: instantiated from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
main.cpp<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4af.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--hundred_points"
      title=":100:"
      alt="💯"
    /> instantiated from here<br />
/usr/include/c++/4.4/bits/stl_heap.h:232: error: could not convert ‘operator&lt;(const s&amp;, const s&amp;)(((const s&amp;)((const s*)__first.__gnu_cxx::__normal_iterator&lt;_Iterator, _Container&gt;::operator+ [with _Iterator = s*, _Container = std::vector&lt;s, std::allocator&lt;s&gt; &gt;](((const ptrdiff_t&amp;)((const ptrdiff_t*)(&amp;(__secondChild + -0x00000000000000001))))).__gnu_cxx::__normal_iterator&lt;_Iterator, _Container&gt;::operator* [with _Iterator = s*, _Container = std::vector&lt;s, std::allocator&lt;s&gt; &gt;]())))’ to ‘bool’<br />
/usr/include/c++/4.4/bits/stl_heap.h: In function ‘void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;, _Distance = int, _Tp = s]’:<br />
/usr/include/c++/4.4/bits/stl_heap.h:244: instantiated from ‘void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;, _Distance = int, _Tp = s]’<br />
/usr/include/c++/4.4/bits/stl_heap.h:394: instantiated from ‘void std::make_heap(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:1904: instantiated from ‘void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:5067: instantiated from ‘void std::partial_sort(_RAIter, _RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:2256: instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;, _Size = int]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:5220: instantiated from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’<br />
main.cpp<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4af.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--hundred_points"
      title=":100:"
      alt="💯"
    /> instantiated from here<br />
/usr/include/c++/4.4/bits/stl_heap.h:134: error: no match for ‘operator&amp;&amp;’ in ‘(__holeIndex &gt; __topIndex) &amp;&amp; operator&lt;(const s&amp;, const s&amp;)(((const s&amp;)((const s*)(&amp; __value))))’<br />
/usr/include/c++/4.4/bits/stl_heap.h:134: note: candidates are: operator&amp;&amp;(bool, bool) &lt;built-in&gt;<br />
make[2]: *** [build/Debug/GNU-Linux-x86/main.o] Fehler 1<br />
make[1]: *** [.build-conf] Fehler 2<br />
make: *** [.build-impl] Fehler 2</p>
<p>BUILD FAILED (exit value 2, total time: 1s)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059412</guid><dc:creator><![CDATA[Jay1980]]></dc:creator><pubDate>Fri, 06 May 2011 10:05:45 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 10:07:39 GMT]]></title><description><![CDATA[<p>Vielleicht einfach <code>bool</code> zurückgeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059413</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 06 May 2011 10:07:39 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 10:08:51 GMT]]></title><description><![CDATA[<p>SeppJ meint:</p>
<pre><code class="language-cpp">struct s
{
    std::string name;
    int  wert;
};
// freie Funktion operator&lt;; -&gt; Return Typ ist natürlich bool
bool operator&lt; ( s const&amp; a, s const&amp; b ) // Bem.: a UND b sind const!
{ 
    return a.wert &lt; b.wert;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2059414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059414</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Fri, 06 May 2011 10:08:51 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 10:20:10 GMT]]></title><description><![CDATA[<p>Und die andere, technisch richtige, aber ungewöhnliche Methode wäre:</p>
<pre><code class="language-cpp">struct s
{
    string name;
    int  wert;

    bool operator&lt; ( s const&amp; rhs ) const // So macht man Methoden const
    {
        return ( wert &lt; rhs.wert );
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2059417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059417</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 06 May 2011 10:20:10 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 10:21:45 GMT]]></title><description><![CDATA[<p>Merci - etz schauen wir mal ob der Build da fluppt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059419</guid><dc:creator><![CDATA[Jay1980]]></dc:creator><pubDate>Fri, 06 May 2011 10:21:45 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 10:21:52 GMT]]></title><description><![CDATA[<p>Und <code>const</code> -Lösung:</p>
<pre><code class="language-cpp">bool operator&lt; (s const&amp; rhs) const
{ 
  return this-&gt;wert &lt; rhs.wert;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2059420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059420</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Fri, 06 May 2011 10:21:52 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 16:13:49 GMT]]></title><description><![CDATA[<p>Jay1980 schrieb:</p>
<blockquote>
<p>Merci - etz schauen wir mal ob der Build da fluppt!</p>
</blockquote>
<p>Und danach lesen wir nochmal die Fehlermeldung und versuchen zu verstehen, was der Compiler uns mitteilen möchte:</p>
<pre><code>from main.cpp:8:
/usr/include/c++/4.4/bits/stl_algo.h: In function ‘const _Tp&amp; std::__median(const _Tp&amp;, const _Tp&amp;, const _Tp&amp;) [with _Tp = s]’:
In file included from /usr/include/c++/4.4/algorithm:62,
/usr/include/c++/4.4/bits/stl_algo.h:2268: instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;, _Size = int]’
/usr/include/c++/4.4/bits/stl_algo.h:5220: instantiated from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;s*, std::vector&lt;s, std::allocator&lt;s&gt; &gt; &gt;]’
main.cpp:100: instantiated from here
/usr/include/c++/4.4/bits/stl_algo.h:89: error: could not convert ‘operator&lt;(const s&amp;, const s&amp;)(((const s&amp;)((const s*)__b)))’ to ‘bool’
</code></pre>
<p>Im Grunde genommen ist alles bis zum <strong>error:</strong> nur ein Wegweiser, wo der Fehler auftaucht, und wo er herkommt. Zeile für Zeile:</p>
<ol>
<li><em>(in main.cpp, Zeile 8 hast du etwas geschrieben, was den Fehler verursacht, nämlich incirekt den Header eingebuden, an der die Stelle unmittelbar auftritt)</em></li>
<li>es wird das Funktionstemplate std::__median instantiiert, mit Templateparameter s. In dieser Funktion passiert der Fehler <em>(Das template befindet sich in stl_algo.h)</em></li>
<li><em>(Diese datei wird in &lt;algorithm&gt; auf Zeile 62 includet)</em></li>
<li>die std::_median-Funktion wird instantiiert, weil std::__introsort_loop instantiiert wurde <em>(Datei- und Zeilenangabe vorne, hinten die angabe welche Templateparameter)</em></li>
<li>diese Funktion wurde wiederum von std::sort instantiiert <em>(Datei- und Zeilenangabe vorne, hinten die angabe welche Templateparameter)</em></li>
<li>diese hast du in main.cpp, Zeile 100 instantiiert</li>
<li>Der Fehler (der in std::__median) ist, dass der Compiler das Ergebnis eines operator&lt;(s const&amp;, s const&amp;) nicht in einen bool konvertieren kann.</li>
</ol>
<p>Das Einfachste ist immer, nach dem <strong>error:</strong> zu suchen. Dort steht das eigentliche Problem. Den ganzen Rest bräuchtest du nur, wenn du wissen willst, warum er diesen op&lt; denn überhaupt aufruft und das Ergebnis in ein bool verwandeln möchte.</p>
<p>Mal was allgemeines zur Operatorüberladung: <a href="http://magazin.c-plusplus.net/artikel/%DCberladung%20von%20Operatoren%20in%20CPlusPlus%20%28Teil%201%29" rel="nofollow">http://magazin.c-plusplus.net/artikel/�berladung von Operatoren in CPlusPlus (Teil 1)</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059613</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 06 May 2011 16:13:49 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 17:44:24 GMT]]></title><description><![CDATA[<p>Wunderbar, mein kleines Beispiel läuft, ich strauchle beim Transfer in mein 'richtiges' Programm, bei dem namespaces verwendet werden.</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;vector&gt;

using namespace std;
namespace global {
    struct s {
        string name;
        int wert;
    };

}

// Operator-Überladung als freie Funktion
bool operator&lt;(global::s const&amp; lhs, global::s const&amp; rhs) {
    return lhs.wert &lt; rhs.wert;
}

/*
 * 
 */
int main(int argc, char** argv) {
    cout &lt;&lt; &quot; Start Spielwiese ... &quot; &lt;&lt; endl;

    vector&lt;int&gt; v;
    v.push_back( 2 );
    v.push_back( 3 );
    v.push_back( 1 );
    v.push_back( 5 );
    v.push_back( 6 );
    v.push_back( 4 );

    cout &lt;&lt; &quot;  Ausgabe der Liste:\n&quot;;
    vector&lt;int&gt;::const_iterator iter1 = v.begin();
    int c1 = 0;
    while (iter1 != v.end() )
    {
        cout &lt;&lt; &quot;   Lauf ... Item (&quot;;
        cout &lt;&lt; c1 &lt;&lt; &quot;): &quot;;
        cout &lt;&lt; *iter1 &lt;&lt; &quot;;\n&quot;;
        ++iter1;
        c1++;
    }

    // Sortierung
    sort( v.begin(), v.end() );

    cout &lt;&lt; &quot;  Ausgabe der Liste:\n&quot;;
    vector&lt;int&gt;::const_iterator iter2 = v.begin();
    int c2 = 0;
    while (iter2 != v.end() )
    {
        cout &lt;&lt; &quot;   Lauf ... Item (&quot;;
        cout &lt;&lt; c2 &lt;&lt; &quot;): &quot;;
        cout &lt;&lt; *iter2 &lt;&lt; &quot;;\n&quot;;
        ++iter2;
        c2++;
    }

    // Lauf mit Strukturen
    global::s s1;
    s1.name = &quot;Item-Eins&quot;;
    s1.wert = 2;
    global::s s2;
    s2.name = &quot;Item-Zwei&quot;;
    s2.wert = 3;
    global::s s3;
    s3.name = &quot;Item-Drei&quot;;
    s3.wert = 1;

    vector&lt;global::s&gt; v2;
    v2.push_back( s1 );
    v2.push_back( s2 );
    v2.push_back( s3 );

    cout &lt;&lt; &quot;Ausgabe der Listen:\n&quot;;
    vector&lt;global::s&gt;::const_iterator iter3 = v2.begin();
    int c3 = 0;
    while (iter3 != v2.end())
    {
        cout &lt;&lt; &quot; Lauf ... Item (&quot;;
        cout &lt;&lt; c3 &lt;&lt; &quot;): &quot;;
        cout &lt;&lt; iter3-&gt;name &lt;&lt; &quot; - &quot;;
        cout &lt;&lt; iter3-&gt;wert &lt;&lt; &quot;;\n&quot;;
        ++iter3;
        c3++;
    }

    // Sortierung
    sort( v2.begin(), v2.end() );

    cout &lt;&lt; &quot;Ausgabe der Listen:\n&quot;;
    vector&lt;global::s&gt;::const_iterator iter4 = v2.begin();
    int c4 = 0;
    while (iter4 != v2.end()) {
        cout &lt;&lt; &quot; Lauf ... Item (&quot;;
        cout &lt;&lt; c4 &lt;&lt; &quot;): &quot;;
        cout &lt;&lt; iter4-&gt;name &lt;&lt; &quot; - &quot;;
        cout &lt;&lt; iter4-&gt;wert &lt;&lt; &quot;;\n&quot;;
        ++iter4;
        c4++;
    }

    cout &lt;&lt; &quot; ... ENDE&quot; &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Auszug aus Fehlermeldung, ich habe natürlich genau auf den ersten 'error' geachtet ... mein Überladungsversuch scheint beim Compiler nicht als solcher anzukommen:<br />
make[1]: Verlasse Verzeichnis '/home/jay/gtd08042010/begleitend/fu-hagen/masterarbeit/h2r_bioinf/workspace-21122010/spielwiese'<br />
from main.cpp:8:<br />
/usr/include/c++/4.4/bits/stl_algo.h: In function ‘const _Tp&amp; std::__median(const _Tp&amp;, const _Tp&amp;, const _Tp&amp;) [with _Tp = global::s]’:<br />
In file included from /usr/include/c++/4.4/algorithm:62,<br />
/usr/include/c++/4.4/bits/stl_algo.h:2268: instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;global::s*, std::vector&lt;global::s, std::allocator<a href="global::s" rel="nofollow">global::s</a> &gt; &gt;, _Size = int]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:5220: instantiated from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;global::s*, std::vector&lt;global::s, std::allocator<a href="global::s" rel="nofollow">global::s</a> &gt; &gt;]’<br />
main.cpp:98: instantiated from here<br />
/usr/include/c++/4.4/bits/stl_algo.h:89: error: no match for ‘operator&lt;’ in ‘__a &lt; __b’<br />
/usr/include/c++/4.4/bits/stl_algo.h:90: error: no match for ‘operator&lt;’ in ‘__b &lt; __c’<br />
/usr/include/c++/4.4/bits/stl_algo.h:92: error: no match for ‘operator&lt;’ in ‘__a &lt; __c’<br />
/usr/include/c++/4.4/bits/stl_algo.h:96: error: no match for ‘operator&lt;’ in ‘__a &lt; __c’<br />
/usr/include/c++/4.4/bits/stl_algo.h:98: error: no match for ‘operator&lt;’ in ‘__b &lt; __c’<br />
/usr/include/c++/4.4/bits/stl_algo.h: In function ‘_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, _Tp) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;global::s*, std::vector&lt;global::s, std::allocator<a href="global::s" rel="nofollow">global::s</a> &gt; &gt;, _Tp = global::s]’:<br />
/usr/include/c++/4.4/bits/stl_algo.h:2268: instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;global::s*, std::vector&lt;global::s, std::allocator<a href="global::s" rel="nofollow">global::s</a> &gt; &gt;, _Size = int]’<br />
/usr/include/c++/4.4/bits/stl_algo.h:5220: instantiated from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator&lt;global::s*, std::vector&lt;global::s, std::allocator<a href="global::s" rel="nofollow">global::s</a> &gt; &gt;]’<br />
main.cpp:98: instantiated from here</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059675</guid><dc:creator><![CDATA[Jay1980]]></dc:creator><pubDate>Fri, 06 May 2011 17:44:24 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 17:56:56 GMT]]></title><description><![CDATA[<p>Du solltest eventuell den Vergleichsoperator in den Namensraum mit reinpacken:</p>
<pre><code class="language-cpp">namespace global { 
    struct s { 
        string name; 
        int wert; 
    }; 
    bool operator&lt;(s const&amp; lhs, s const&amp; rhs) { 
        return lhs.wert &lt; rhs.wert; 
    } 

}
</code></pre>
<p>(keine Sorge - der Compiler ist clever genug, den Operator dort zu finden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059680</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 06 May 2011 17:56:56 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 18:05:29 GMT]]></title><description><![CDATA[<p>Wenn du das wie CStoll empfiehlt machst, dann kannst du auch noch mal nach &quot;argument dependent lookup&quot; oder &quot;Koenig lookup&quot; googlen. Das ist zwar eine recht spezielle Eigenschaft von C++, aber wichtig zu wissen, wenn man mit Namespaces arbeitet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059686</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 06 May 2011 18:05:29 GMT</pubDate></item><item><title><![CDATA[Reply to Kleiner-Operator zum Sortieren überladen on Fri, 06 May 2011 18:06:25 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Du solltest eventuell den Vergleichsoperator in den Namensraum mit reinpacken:</p>
</blockquote>
<p>Nicht nur eventuell. Da Überladungen für &lt; auch im Namensraum std existieren, wird beim unqualifizierten Lookup innerhalb eines Standardalgorithmus der globale Namensraum wahrscheinlich nicht durchsucht werden. Damit bleibt nur ADNL übrig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059688</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 06 May 2011 18:06:25 GMT</pubDate></item></channel></rss>