<?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[Warum überladen die gängigen Smart-Pointer und Iteratoren den Operator -&amp;gt;* nicht?]]></title><description><![CDATA[<p>Dabei wäre es doch nur konsequent - und trivial zu implementieren:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
    struct TheSmartPointer
{
    ...
    template &lt;typename SubT&gt;
        SubT&amp; operator -&gt;* (SubT T::* mptr) { return operator * ().*mptr; }
    template &lt;typename SubT&gt;
        const SubT&amp; operator -&gt;* (SubT T::* mptr) const { return operator * ().*mptr; }
</code></pre>
<p>Übersehe ich etwas?<br />
Oder ist das nur ein weiteres nicht durchdachtes Feature? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/234404/warum-überladen-die-gängigen-smart-pointer-und-iteratoren-den-operator-gt-nicht</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 11:27:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/234404.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Feb 2009 15:42:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Warum überladen die gängigen Smart-Pointer und Iteratoren den Operator -&amp;gt;* nicht? on Tue, 17 Feb 2009 15:42:38 GMT]]></title><description><![CDATA[<p>Dabei wäre es doch nur konsequent - und trivial zu implementieren:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
    struct TheSmartPointer
{
    ...
    template &lt;typename SubT&gt;
        SubT&amp; operator -&gt;* (SubT T::* mptr) { return operator * ().*mptr; }
    template &lt;typename SubT&gt;
        const SubT&amp; operator -&gt;* (SubT T::* mptr) const { return operator * ().*mptr; }
</code></pre>
<p>Übersehe ich etwas?<br />
Oder ist das nur ein weiteres nicht durchdachtes Feature? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1665354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1665354</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Tue, 17 Feb 2009 15:42:38 GMT</pubDate></item><item><title><![CDATA[Reply to Warum überladen die gängigen Smart-Pointer und Iteratoren den Operator -&amp;gt;* nicht? on Tue, 17 Feb 2009 16:13:58 GMT]]></title><description><![CDATA[<p>audacia schrieb:</p>
<blockquote>
<p>Dabei wäre es doch nur konsequent - und trivial zu implementieren:<br />
...<br />
Übersehe ich etwas?</p>
</blockquote>
<p>Es gibt den Operator: &quot;-&gt;&quot; und &quot;<em>&quot;, nicht aber &quot;-&gt;</em>&quot;.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1665372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1665372</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 17 Feb 2009 16:13:58 GMT</pubDate></item><item><title><![CDATA[Reply to Warum überladen die gängigen Smart-Pointer und Iteratoren den Operator -&amp;gt;* nicht? on Tue, 17 Feb 2009 16:15:29 GMT]]></title><description><![CDATA[<p>Sicher? Möchtest du meinen Code nicht lieber erst ausprobieren? <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1665374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1665374</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Tue, 17 Feb 2009 16:15:29 GMT</pubDate></item><item><title><![CDATA[Reply to Warum überladen die gängigen Smart-Pointer und Iteratoren den Operator -&amp;gt;* nicht? on Tue, 17 Feb 2009 16:25:37 GMT]]></title><description><![CDATA[<p>Pumuckl hat nen <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-232010.html" rel="nofollow">Artikel</a> über Operatorüberladung geschrieben. Punkt 3.17 liefert ne Erklärung zu -&gt;*...</p>
<p>Gruß<br />
Tobi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1665381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1665381</guid><dc:creator><![CDATA[Tobias Gerg]]></dc:creator><pubDate>Tue, 17 Feb 2009 16:25:37 GMT</pubDate></item><item><title><![CDATA[Reply to Warum überladen die gängigen Smart-Pointer und Iteratoren den Operator -&amp;gt;* nicht? on Tue, 17 Feb 2009 16:28:52 GMT]]></title><description><![CDATA[<p>Tobias Gerg schrieb:</p>
<blockquote>
<p>Pumuckl hat nen <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-232010.html" rel="nofollow">Artikel</a> über Operatorüberladung geschrieben. Punkt 3.17 liefert ne Erklärung zu -&gt;*...</p>
</blockquote>
<p>Ist aber auch keine gute Erklaerung warum man bei smartpointern den -&gt;* nicht ueberlaedt.</p>
<p>Ich muss gestehen es noch nie gemacht zu haben aber jetzt so direkt betrachtet: ich kann nicht begruenden warum ich es nicht gemacht habe (einfach nur weil ich es nie gesehen habe...). Und sowas muss man dann immer in frage stellen.</p>
<p>Was spricht gegen eine ueberladung des -&gt;* bei smartpointern?<br />
oder noch weiter:<br />
warum muss man den -&gt;* operator nicht auch immer ueberladen wenn man operator-&gt; ueberlaedt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1665383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1665383</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 17 Feb 2009 16:28:52 GMT</pubDate></item><item><title><![CDATA[Reply to Warum überladen die gängigen Smart-Pointer und Iteratoren den Operator -&amp;gt;* nicht? on Tue, 17 Feb 2009 16:29:14 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/14941">@asc</a>,<br />
Standard 98, &quot;5.5 Pointer-to-member operators&quot;<br />
Und in &quot;13.5 Overloaded operators&quot; steht er auch drin, dass man ihn überladen kann, im gegensatz zum anderen Pointer-to-member Operator .* der nicht überladen werden kann.</p>
<p>Das Ding gibt es wirklich. Ich persönlich habe den erst bei der Verwendung von Boost kennen gelernt. Es scheint mir, dass dieser Operator extrem unbekannt ist.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/8276">@audacia</a>,<br />
Ich denke der Operator ist nicht vorhanden, weil er völlig unbekannt ist. Anders kann ich es mir jedenfalls nicht erklären. Oder die Leute lassen ihn weg, da man ihn über andere Operatoren bereits schon erreichen kann.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1665384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1665384</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 17 Feb 2009 16:29:14 GMT</pubDate></item><item><title><![CDATA[Reply to Warum überladen die gängigen Smart-Pointer und Iteratoren den Operator -&amp;gt;* nicht? on Tue, 17 Feb 2009 16:29:32 GMT]]></title><description><![CDATA[<p>Tobias Gerg schrieb:</p>
<blockquote>
<p>Pumuckl hat nen <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-232010.html" rel="nofollow">Artikel</a> über Operatorüberladung geschrieben. Punkt 3.17 liefert ne Erklärung zu -&gt;*...</p>
</blockquote>
<p>Okay, das ist mir wirklich neu das es diesen Operator gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1665385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1665385</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 17 Feb 2009 16:29:32 GMT</pubDate></item><item><title><![CDATA[Reply to Warum überladen die gängigen Smart-Pointer und Iteratoren den Operator -&amp;gt;* nicht? on Tue, 17 Feb 2009 19:11:27 GMT]]></title><description><![CDATA[<p>Nach ein paar weiteren Experimenten damit fiel mir auf, weshalb man ihn nicht überlädt: weil man dann nämlich konsequenterweise nicht nur für Element-, sondern auch für Methodenzeiger eine Überladung bereitstellen müßte, und dafür bräuchte man Perfect Forwarding und Variadic Templates. Auf das Forwarding könnte man verzichten, wenn ein objektgebundener Methodenzeiger, also z.B. <code>obj.*methodPointer</code> , in Standard-C++ einen wohlgeformten Typen hätte (-&gt; __closure) - aber dann bräuchte man immer noch Variadic Templates.</p>
<p><em>Edit: Typographie.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1665447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1665447</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Tue, 17 Feb 2009 19:11:27 GMT</pubDate></item></channel></rss>