<?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[template klassenobjekt]]></title><description><![CDATA[<p>hallo</p>
<p>mein code:</p>
<pre><code>struct foo
{
    template&lt;class T&gt;
    void operator()(T a){}
};
int main()
{
    foo(5);
}
</code></pre>
<p><a href="http://ideone.com/biMgip" rel="nofollow">ideone.com/biMgip</a></p>
<p>es gibt beim kompilieren einen fehler. soweit ich das beurteilen kann, versucht der kompiler eine instanz zu erzeugen und beschwert sich darüber, dass ich einen parameter angebe, den er nicht braucht. ich will aber ein funktionsobjekt haben, so dass ich die klasse als funktion behandeln kann. was muss ich ändern?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/318725/template-klassenobjekt</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 17:25:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/318725.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 24 Jul 2013 09:57:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to template klassenobjekt on Wed, 24 Jul 2013 09:57:16 GMT]]></title><description><![CDATA[<p>hallo</p>
<p>mein code:</p>
<pre><code>struct foo
{
    template&lt;class T&gt;
    void operator()(T a){}
};
int main()
{
    foo(5);
}
</code></pre>
<p><a href="http://ideone.com/biMgip" rel="nofollow">ideone.com/biMgip</a></p>
<p>es gibt beim kompilieren einen fehler. soweit ich das beurteilen kann, versucht der kompiler eine instanz zu erzeugen und beschwert sich darüber, dass ich einen parameter angebe, den er nicht braucht. ich will aber ein funktionsobjekt haben, so dass ich die klasse als funktion behandeln kann. was muss ich ändern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2340816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340816</guid><dc:creator><![CDATA[hanslol]]></dc:creator><pubDate>Wed, 24 Jul 2013 09:57:16 GMT</pubDate></item><item><title><![CDATA[Reply to template klassenobjekt on Wed, 24 Jul 2013 09:59:51 GMT]]></title><description><![CDATA[<p>Was du da machst ist ein Konstruktoraufruf. Du willst aber den ()-Operator aufrufen, dafür braucsht du natürlich vorher ein Objekt (einen Funktor):</p>
<pre><code>struct foo
{
    template&lt;class T&gt;
    void operator()(T a){}
};
int main()
{
    foo f;
    f(5); // --&gt; f&lt;int&gt;(5)
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2340818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340818</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 24 Jul 2013 09:59:51 GMT</pubDate></item><item><title><![CDATA[Reply to template klassenobjekt on Wed, 24 Jul 2013 10:00:11 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">foo(5)
</code></pre>
<p>erzeugt ein neues Objekt, und benötigt einen entsprechenden Konstruktor. Willst du den überladenen ()-Operator verwenden, muss schon ein Objekt existieren, auf dass dieser angewendet werden kann. Also z.B.</p>
<pre><code class="language-cpp">foo()(5);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2340819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340819</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 24 Jul 2013 10:00:11 GMT</pubDate></item><item><title><![CDATA[Reply to template klassenobjekt on Wed, 24 Jul 2013 10:00:43 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<pre><code class="language-cpp">foo()(5);
</code></pre>
</blockquote>
<p>Das sieht hart aus <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="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2340820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340820</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 24 Jul 2013 10:00:43 GMT</pubDate></item><item><title><![CDATA[Reply to template klassenobjekt on Wed, 24 Jul 2013 10:01:06 GMT]]></title><description><![CDATA[<pre><code>struct foo
{
    template&lt;class T&gt;
    void operator()(T a){}
};
int main()
{
    foo f;
    f(5);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2340821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340821</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 24 Jul 2013 10:01:06 GMT</pubDate></item><item><title><![CDATA[Reply to template klassenobjekt on Wed, 24 Jul 2013 10:01:52 GMT]]></title><description><![CDATA[<p>Wenn du ein Funktions<strong>objekt</strong> brauchst, dann erstelle bitte auch ein Objekt:</p>
<pre><code class="language-cpp">foo myFoo;
myFoo(5);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2340822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340822</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Wed, 24 Jul 2013 10:01:52 GMT</pubDate></item><item><title><![CDATA[Reply to template klassenobjekt on Wed, 24 Jul 2013 10:04:40 GMT]]></title><description><![CDATA[<p>Deine Code benutzt einen undefinierten Konstruktor ( <code>foo( int )</code> . Wenn du den <code>operator()</code> benutzen willst kann das so ausehen:</p>
<pre><code>struct foo
{
   template&lt;typename T&gt;
   void operator()( T a ) {}
};

int main()
{
   // 1. explizit Objekt erzeugen
   foo myFoo;
   myFoo( 5 );

   // temporary benutzen
   foo()( 5 );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2340824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340824</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 24 Jul 2013 10:04:40 GMT</pubDate></item><item><title><![CDATA[Reply to template klassenobjekt on Wed, 24 Jul 2013 10:10:03 GMT]]></title><description><![CDATA[<p>danke für die schnelle antwort.</p>
<p>ich habe mich entschieden, diese syntax zu nutzen:</p>
<pre><code>foo()(5);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2340827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340827</guid><dc:creator><![CDATA[hanslol]]></dc:creator><pubDate>Wed, 24 Jul 2013 10:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to template klassenobjekt on Wed, 24 Jul 2013 11:23:13 GMT]]></title><description><![CDATA[<p>Brauchst Du die Klasse denn dann überhaupt? Es gibt auch Template-Funktionen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2340836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340836</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Wed, 24 Jul 2013 11:23:13 GMT</pubDate></item><item><title><![CDATA[Reply to template klassenobjekt on Wed, 24 Jul 2013 12:09:01 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Brauchst Du die Klasse denn dann überhaupt? Es gibt auch Template-Funktionen.</p>
</blockquote>
<p>Besonders komisch ist die Tatsache: Ein <code>operator()</code> sollte schließlich mit den Membern der Klasse arbeiten, was hier (und möglicherweise im entsprechenden real-life Szenario des TE) nicht der Fall ist. Dann schon vielleicht allermindestens eine statische Memberfunktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2340847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2340847</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 24 Jul 2013 12:09:01 GMT</pubDate></item></channel></rss>