<?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[priority_queue mit eigenem Typ =&amp;gt; Fehler]]></title><description><![CDATA[<p>Hi,<br />
Das ist das erste mal, dass ich die priority_queue nutze und irgendwie hauts auch nicht so richtig hin.<br />
Compileroutput:</p>
<pre><code>g++ -g `pkg-config gtk+-2.0 --cflags` `wx-config --cppflags` -c Resources/Autotileset.cpp
/usr/include/c++/4.2/bits/stl_function.h: In member function ‘bool std::less&lt;_Tp&gt;::operator()(const _Tp&amp;, const _Tp&amp;) const [with _Tp = Autotileset::ImageGenerator::Rule]’:
/usr/include/c++/4.2/bits/stl_heap.h:279:   instantiated from ‘void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;Autotileset::ImageGenerator::Rule*, std::vector&lt;Autotileset::ImageGenerator::Rule, std::allocator&lt;Autotileset::ImageGenerator::Rule&gt; &gt; &gt;, _Distance = long int, _Tp = Autotileset::ImageGenerator::Rule, _Compare = std::less&lt;Autotileset::ImageGenerator::Rule&gt;]’
/usr/include/c++/4.2/bits/stl_heap.h:404:   instantiated from ‘void std::make_heap(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;Autotileset::ImageGenerator::Rule*, std::vector&lt;Autotileset::ImageGenerator::Rule, std::allocator&lt;Autotileset::ImageGenerator::Rule&gt; &gt; &gt;, _Compare = std::less&lt;Autotileset::ImageGenerator::Rule&gt;]’
/usr/include/c++/4.2/bits/stl_queue.h:353:   instantiated from ‘std::priority_queue&lt;_Tp, _Sequence, _Compare&gt;::priority_queue(const _Compare&amp;, const _Sequence&amp;) [with _Tp = Autotileset::ImageGenerator::Rule, _Sequence = std::vector&lt;Autotileset::ImageGenerator::Rule, std::allocator&lt;Autotileset::ImageGenerator::Rule&gt; &gt;, _Compare = std::less&lt;Autotileset::ImageGenerator::Rule&gt;]’
Resources/Autotileset.cpp:69:   instantiated from here
/usr/include/c++/4.2/bits/stl_function.h:227: error: passing ‘const Autotileset::ImageGenerator::Rule’ as ‘this’ argument of ‘bool Autotileset::ImageGenerator::Rule::operator&lt;(const Autotileset::ImageGenerator::Rule&amp;)’ discards qualifier
</code></pre>
<p>relevanter Code:</p>
<pre><code class="language-cpp">class Rule
  {
  public:
    Rule(char conditions, shared::Tilelocation tile[4]);
    bool operator&lt;(const Rule&amp;);
    bool operator&gt;(const Rule&amp;);
    // [... andere Funktionsdeklarationen ...]
  };
  std::priority_queue&lt;Rule&gt; rules;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/221643/priority_queue-mit-eigenem-typ-gt-fehler</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 00:43:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/221643.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 01 Sep 2008 13:10:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to priority_queue mit eigenem Typ =&amp;gt; Fehler on Mon, 01 Sep 2008 13:10:12 GMT]]></title><description><![CDATA[<p>Hi,<br />
Das ist das erste mal, dass ich die priority_queue nutze und irgendwie hauts auch nicht so richtig hin.<br />
Compileroutput:</p>
<pre><code>g++ -g `pkg-config gtk+-2.0 --cflags` `wx-config --cppflags` -c Resources/Autotileset.cpp
/usr/include/c++/4.2/bits/stl_function.h: In member function ‘bool std::less&lt;_Tp&gt;::operator()(const _Tp&amp;, const _Tp&amp;) const [with _Tp = Autotileset::ImageGenerator::Rule]’:
/usr/include/c++/4.2/bits/stl_heap.h:279:   instantiated from ‘void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;Autotileset::ImageGenerator::Rule*, std::vector&lt;Autotileset::ImageGenerator::Rule, std::allocator&lt;Autotileset::ImageGenerator::Rule&gt; &gt; &gt;, _Distance = long int, _Tp = Autotileset::ImageGenerator::Rule, _Compare = std::less&lt;Autotileset::ImageGenerator::Rule&gt;]’
/usr/include/c++/4.2/bits/stl_heap.h:404:   instantiated from ‘void std::make_heap(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;Autotileset::ImageGenerator::Rule*, std::vector&lt;Autotileset::ImageGenerator::Rule, std::allocator&lt;Autotileset::ImageGenerator::Rule&gt; &gt; &gt;, _Compare = std::less&lt;Autotileset::ImageGenerator::Rule&gt;]’
/usr/include/c++/4.2/bits/stl_queue.h:353:   instantiated from ‘std::priority_queue&lt;_Tp, _Sequence, _Compare&gt;::priority_queue(const _Compare&amp;, const _Sequence&amp;) [with _Tp = Autotileset::ImageGenerator::Rule, _Sequence = std::vector&lt;Autotileset::ImageGenerator::Rule, std::allocator&lt;Autotileset::ImageGenerator::Rule&gt; &gt;, _Compare = std::less&lt;Autotileset::ImageGenerator::Rule&gt;]’
Resources/Autotileset.cpp:69:   instantiated from here
/usr/include/c++/4.2/bits/stl_function.h:227: error: passing ‘const Autotileset::ImageGenerator::Rule’ as ‘this’ argument of ‘bool Autotileset::ImageGenerator::Rule::operator&lt;(const Autotileset::ImageGenerator::Rule&amp;)’ discards qualifier
</code></pre>
<p>relevanter Code:</p>
<pre><code class="language-cpp">class Rule
  {
  public:
    Rule(char conditions, shared::Tilelocation tile[4]);
    bool operator&lt;(const Rule&amp;);
    bool operator&gt;(const Rule&amp;);
    // [... andere Funktionsdeklarationen ...]
  };
  std::priority_queue&lt;Rule&gt; rules;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1574729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574729</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Mon, 01 Sep 2008 13:10:12 GMT</pubDate></item><item><title><![CDATA[Reply to priority_queue mit eigenem Typ =&amp;gt; Fehler on Mon, 01 Sep 2008 13:32:48 GMT]]></title><description><![CDATA[<p>wuerde mal auf den operator&lt; tippen.<br />
korrekterweise ist der non member.<br />
wenn du ihn aber aus unerfindlichen gruenden als member haben willst, dann mach ihn wenigstens const.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574759</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Mon, 01 Sep 2008 13:32:48 GMT</pubDate></item><item><title><![CDATA[Reply to priority_queue mit eigenem Typ =&amp;gt; Fehler on Mon, 01 Sep 2008 14:19:49 GMT]]></title><description><![CDATA[<p>warum sollte man es nicht als Member machen?<br />
KOnstant funktioniert es aber, danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574808</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Mon, 01 Sep 2008 14:19:49 GMT</pubDate></item><item><title><![CDATA[Reply to priority_queue mit eigenem Typ =&amp;gt; Fehler on Mon, 01 Sep 2008 14:35:23 GMT]]></title><description><![CDATA[<p>JustAnotherNoob schrieb:</p>
<blockquote>
<p>warum sollte man es nicht als Member machen?<br />
KOnstant funktioniert es aber, danke</p>
</blockquote>
<p>gegenfrage:<br />
warum sollte man es als member machen?</p>
<p>man kann nicht alle operator&lt; als member haben, denn zB string&lt;Rule<br />
wuerde als member nicht funktionieren...</p>
<p>also muss man sowieso mal einen grossen teil der operatoren als non member haben. dann kann man gleich alle nehmen.</p>
<p>alles was non member sein kann, sollte non member sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574817</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Mon, 01 Sep 2008 14:35:23 GMT</pubDate></item><item><title><![CDATA[Reply to priority_queue mit eigenem Typ =&amp;gt; Fehler on Mon, 01 Sep 2008 14:40:13 GMT]]></title><description><![CDATA[<p>Hier noch ein interessanter Bericht über Kapselung und non- Member Functions:<br />
<a href="http://www.ddj.com/cpp/184401197" rel="nofollow">http://www.ddj.com/cpp/184401197</a></p>
<p>Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574822</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Mon, 01 Sep 2008 14:40:13 GMT</pubDate></item></channel></rss>