<?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[member function template error]]></title><description><![CDATA[<p>hallo,<br />
ich habe in etwa folgenden Sachverhalt:</p>
<pre><code class="language-cpp">struct Foo
{
  template&lt;typename T&gt;
  Foo()
  {
  }
};

struct Bar: public Foo
{
  Bar()
    : Foo&lt;int&gt;() // &lt;&lt;&lt;&lt;&lt;
  {
  }
};

int main(int argc, char* argv[])
{
  Bar bar;
  return 0;
}
</code></pre>
<p>Visual Studio kommt hier mit der kommentierten Zeile nicht klar, Meldung:</p>
<blockquote>
<p>1&gt; error C2059: syntax error : '&lt;'<br />
1&gt; error C2512: 'Foo::Foo' : no appropriate default constructor available</p>
</blockquote>
<p>Mir scheint es so, als wuerde er irgendwie Foo als template betrachten wollen (und nicht kapieren, dass ich den Konstruktor meine). Uebergebe ich einen zusaetzlichen Parameter vom Typ T, also:</p>
<pre><code class="language-cpp">struct Foo
{
  template&lt;typename T&gt;
  Foo(T t)
  {
  }
};

struct Bar: public Foo
{
  Bar()
    : Foo(1.0)
  {
  }
};
</code></pre>
<p>Frisst ers.<br />
Was kann man da machen, ich brauche es ohneParameter? Foo selbst zum template zu machen steht ausser Frage.</p>
<p>Viele Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/250008/member-function-template-error</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 03:12:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/250008.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 15 Sep 2009 08:11:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to member function template error on Tue, 15 Sep 2009 08:11:50 GMT]]></title><description><![CDATA[<p>hallo,<br />
ich habe in etwa folgenden Sachverhalt:</p>
<pre><code class="language-cpp">struct Foo
{
  template&lt;typename T&gt;
  Foo()
  {
  }
};

struct Bar: public Foo
{
  Bar()
    : Foo&lt;int&gt;() // &lt;&lt;&lt;&lt;&lt;
  {
  }
};

int main(int argc, char* argv[])
{
  Bar bar;
  return 0;
}
</code></pre>
<p>Visual Studio kommt hier mit der kommentierten Zeile nicht klar, Meldung:</p>
<blockquote>
<p>1&gt; error C2059: syntax error : '&lt;'<br />
1&gt; error C2512: 'Foo::Foo' : no appropriate default constructor available</p>
</blockquote>
<p>Mir scheint es so, als wuerde er irgendwie Foo als template betrachten wollen (und nicht kapieren, dass ich den Konstruktor meine). Uebergebe ich einen zusaetzlichen Parameter vom Typ T, also:</p>
<pre><code class="language-cpp">struct Foo
{
  template&lt;typename T&gt;
  Foo(T t)
  {
  }
};

struct Bar: public Foo
{
  Bar()
    : Foo(1.0)
  {
  }
};
</code></pre>
<p>Frisst ers.<br />
Was kann man da machen, ich brauche es ohneParameter? Foo selbst zum template zu machen steht ausser Frage.</p>
<p>Viele Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778621</guid><dc:creator><![CDATA[templateloser]]></dc:creator><pubDate>Tue, 15 Sep 2009 08:11:50 GMT</pubDate></item><item><title><![CDATA[Reply to member function template error on Tue, 15 Sep 2009 08:33:54 GMT]]></title><description><![CDATA[<p>C++ Standard 14.8.17 schrieb:</p>
<blockquote>
<p>[Note: because the explicit template argument list follows the function template name, and because conversion member<br />
function templates and constructor member function templates are called without using a function name, there is no way<br />
to provide an explicit template argument list for these function templates. —end note ]</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1778637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778637</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 15 Sep 2009 08:33:54 GMT</pubDate></item><item><title><![CDATA[Reply to member function template error on Tue, 15 Sep 2009 12:45:21 GMT]]></title><description><![CDATA[<p>nimm doch nen dummy-parameter:</p>
<pre><code class="language-cpp">struct Foo
{
  template&lt;typename T&gt;
  Foo(const T&amp;)
  {
  }
};

struct Bar: public Foo
{
  Bar()
  :  Foo(int())
  {}
};

int main()
{
  Bar bar;
}
</code></pre>
<p>aber alles in allem klingt mir das ganze ein wenig fragwürdig...<br />
vll schreibst du mal ein wenig mehr über den sinn dahinter?!</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778811</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 15 Sep 2009 12:45:21 GMT</pubDate></item><item><title><![CDATA[Reply to member function template error on Wed, 16 Sep 2009 16:36:19 GMT]]></title><description><![CDATA[<p>Wofür brauchst du einen Konstruktor mit Template-Parameter, wenn du den Parameter gar nicht benutzt? Das ist widersinnig!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1779956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779956</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Wed, 16 Sep 2009 16:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to member function template error on Wed, 16 Sep 2009 16:49:36 GMT]]></title><description><![CDATA[<p>Im Zweifel mit einem Typeholer als Dummy-Parameter:</p>
<pre><code class="language-cpp">template&lt;typename T&gt; struct Type {};

struct Foo
{
  template&lt;typename T&gt;
  Foo(Type&lt;T&gt;)
  {
  }
};

struct Bar: public Foo
{
  Bar()
  :  Foo(Type&lt;int&gt;())
  {}
};

int main()
{
  Bar bar;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1779967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1779967</guid><dc:creator><![CDATA[lordjaxom_off]]></dc:creator><pubDate>Wed, 16 Sep 2009 16:49:36 GMT</pubDate></item></channel></rss>