<?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[Gleiche Operatoren im selben Namespace]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe zwei Templateklassen. Für beide habe ich einen [] operator definiert. Beide Klassen sind jedoch im selben Namespace und da kommt das Problem. MSVC++ Express kompiliert mir das nicht und ich erhalte den Fehler C2666 (Overloads have similar conversion). Ich habe schon in der MSDN nachgeschaut, aber irgendwie ist die nicht wirklich hilfreich.</p>
<p>Weiß jemand wie ich das fixen könnte?<br />
Danke schonmal für Tipps!</p>
<p>Hier mal ein Auszug aus dem Code:</p>
<p>Atest.h</p>
<pre><code class="language-cpp">namespace test
{

  template &lt;class T, unsigned N&gt;
  class Atest{

protected:
    T vec_[N];
  public:

    T&amp; operator[](const int i) { return vec_[i]; }
    const T&amp; operator[](const int i) const { return vec_[i]; }
   };
}
</code></pre>
<p>Stest.h</p>
<pre><code class="language-cpp">#include &quot;Atest.h&quot;

namespace test
{
	template&lt;class T, unsigned N&gt; class Stest
	{
  protected:
	  Atest&lt;T, N&gt; data_;

  public:
	  T operator[](unsigned i) const		{ return data_[i];				}
	  T&amp; operator[](unsigned i)				{ return data_[i];				}
        };
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/129324/gleiche-operatoren-im-selben-namespace</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 04:23:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/129324.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Dec 2005 17:54:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Gleiche Operatoren im selben Namespace on Mon, 12 Dec 2005 17:56:18 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe zwei Templateklassen. Für beide habe ich einen [] operator definiert. Beide Klassen sind jedoch im selben Namespace und da kommt das Problem. MSVC++ Express kompiliert mir das nicht und ich erhalte den Fehler C2666 (Overloads have similar conversion). Ich habe schon in der MSDN nachgeschaut, aber irgendwie ist die nicht wirklich hilfreich.</p>
<p>Weiß jemand wie ich das fixen könnte?<br />
Danke schonmal für Tipps!</p>
<p>Hier mal ein Auszug aus dem Code:</p>
<p>Atest.h</p>
<pre><code class="language-cpp">namespace test
{

  template &lt;class T, unsigned N&gt;
  class Atest{

protected:
    T vec_[N];
  public:

    T&amp; operator[](const int i) { return vec_[i]; }
    const T&amp; operator[](const int i) const { return vec_[i]; }
   };
}
</code></pre>
<p>Stest.h</p>
<pre><code class="language-cpp">#include &quot;Atest.h&quot;

namespace test
{
	template&lt;class T, unsigned N&gt; class Stest
	{
  protected:
	  Atest&lt;T, N&gt; data_;

  public:
	  T operator[](unsigned i) const		{ return data_[i];				}
	  T&amp; operator[](unsigned i)				{ return data_[i];				}
        };
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/940436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940436</guid><dc:creator><![CDATA[Designer]]></dc:creator><pubDate>Mon, 12 Dec 2005 17:56:18 GMT</pubDate></item><item><title><![CDATA[Reply to Gleiche Operatoren im selben Namespace on Mon, 12 Dec 2005 17:57:00 GMT]]></title><description><![CDATA[<p>Da deine Operatoren nicht global rumliegen sondern als Klassenmember fungieren dürfte es da eigentlich keine Probleme geben.</p>
<p>Ich schätze du hast bei der Implementierung ganz einfach &quot;Klasse::&quot; vergessen.</p>
<p>/Edit Edit Edit: Schau dir die Signatur deiner Operatoren nochmal genau an.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940440</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 12 Dec 2005 17:57:00 GMT</pubDate></item><item><title><![CDATA[Reply to Gleiche Operatoren im selben Namespace on Mon, 12 Dec 2005 18:01:17 GMT]]></title><description><![CDATA[<p>SideWinder schrieb:</p>
<blockquote>
<p>Da deine Operatoren nicht global rumliegen sondern als Klassenmember fungieren dürfte es da eigentlich keine Probleme geben.</p>
<p>Ich schätze du hast bei der Implementierung ganz einfach &quot;Klasse::&quot; vergessen.</p>
<p>/Edit Edit Edit: Schau dir die Signatur deiner Operatoren nochmal genau an.</p>
<p>MfG SideWinder</p>
</blockquote>
<p>Hi danke erstmal,</p>
<p>was meinst du mit Signatur? Bin noch nicht all zu lange dabei und etwas langsam <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/940445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940445</guid><dc:creator><![CDATA[Designer]]></dc:creator><pubDate>Mon, 12 Dec 2005 18:01:17 GMT</pubDate></item><item><title><![CDATA[Reply to Gleiche Operatoren im selben Namespace on Mon, 12 Dec 2005 18:06:35 GMT]]></title><description><![CDATA[<p>Ah, ich habs jetzt. Ich hab den Operator explizit aufgerufen und jetzt funktioniert es!</p>
<pre><code class="language-cpp">return data_.operator [](i);
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Aber was meintest du mit Signatur?</p>
<p>Danke trotzdem!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940453</guid><dc:creator><![CDATA[Designer]]></dc:creator><pubDate>Mon, 12 Dec 2005 18:06:35 GMT</pubDate></item><item><title><![CDATA[Reply to Gleiche Operatoren im selben Namespace on Mon, 12 Dec 2005 18:33:42 GMT]]></title><description><![CDATA[<p>Signatur ist z.B. der name eine Funktion und die Anzahl der Parameter einer Funktion. Weil anhand dessen kann man eine Funktion identifizieren... ist wie eine Signierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940482</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 12 Dec 2005 18:33:42 GMT</pubDate></item><item><title><![CDATA[Reply to Gleiche Operatoren im selben Namespace on Mon, 12 Dec 2005 19:13:12 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Signatur ist z.B. der name eine Funktion und die Anzahl der Parameter einer Funktion. Weil anhand dessen kann man eine Funktion identifizieren... ist wie eine Signierung.</p>
</blockquote>
<p>Ah! Danke Brüderchen <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/940530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940530</guid><dc:creator><![CDATA[Designer]]></dc:creator><pubDate>Mon, 12 Dec 2005 19:13:12 GMT</pubDate></item></channel></rss>