<?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[Templates mit mehreren Typen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Template definiert:</p>
<pre><code>template&lt;template&lt;class B, class C&gt; class A, class B, class C&gt;
void function(std::string a) {
	// create
	boost::shared_ptr&lt;A&lt;B, C&gt; &gt; approach(new A&lt;B, C&gt;(a));
	std::string type = C::getType();

	// print out
	std::cout &lt;&lt; &quot;Type: &quot; &lt;&lt; type &lt;&lt; std::endl;
	std::cout &lt;&lt; &quot;Name: &quot; &lt;&lt; approach-&gt;getName() &lt;&lt; std::endl;
}
</code></pre>
<p>Wenn ich das ganze benutzen möchte:</p>
<pre><code>std::string str = &quot;hallo&quot;;
function&lt;E,F,G&gt;(str);
</code></pre>
<p>erhalte ich einen &quot;no matching function for call to&quot;-Fehler. Kann mir jemand dabei weiterhelfen?</p>
<p>Grüße,<br />
mikemodanoxxx</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/327194/templates-mit-mehreren-typen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 20:23:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327194.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Jul 2014 13:34:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templates mit mehreren Typen on Mon, 28 Jul 2014 13:34:51 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Template definiert:</p>
<pre><code>template&lt;template&lt;class B, class C&gt; class A, class B, class C&gt;
void function(std::string a) {
	// create
	boost::shared_ptr&lt;A&lt;B, C&gt; &gt; approach(new A&lt;B, C&gt;(a));
	std::string type = C::getType();

	// print out
	std::cout &lt;&lt; &quot;Type: &quot; &lt;&lt; type &lt;&lt; std::endl;
	std::cout &lt;&lt; &quot;Name: &quot; &lt;&lt; approach-&gt;getName() &lt;&lt; std::endl;
}
</code></pre>
<p>Wenn ich das ganze benutzen möchte:</p>
<pre><code>std::string str = &quot;hallo&quot;;
function&lt;E,F,G&gt;(str);
</code></pre>
<p>erhalte ich einen &quot;no matching function for call to&quot;-Fehler. Kann mir jemand dabei weiterhelfen?</p>
<p>Grüße,<br />
mikemodanoxxx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2410844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410844</guid><dc:creator><![CDATA[mikemodanoxxx]]></dc:creator><pubDate>Mon, 28 Jul 2014 13:34:51 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit mehreren Typen on Mon, 28 Jul 2014 13:54:21 GMT]]></title><description><![CDATA[<p>Schön, dass du dir die vollständige Fehlermeldung und ein übersetzbares Beispiel gespart hast. Ich spare mit die Hilfe ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2410848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410848</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 28 Jul 2014 13:54:21 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit mehreren Typen on Mon, 28 Jul 2014 14:01:19 GMT]]></title><description><![CDATA[<p>Der Fehler liegt woanders. Minimal ergänzt funktioniert der gezeigte Code einwandfrei:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

#include &lt;boost/shared_ptr.hpp&gt;

template&lt;template&lt;class B, class C&gt; class A, class B, class C&gt;
void function(std::string a) {
    // create
    boost::shared_ptr&lt;A&lt;B, C&gt; &gt; approach(new A&lt;B, C&gt;(a));
    std::string type = C::getType();

    // print out
    std::cout &lt;&lt; &quot;Type: &quot; &lt;&lt; type &lt;&lt; std::endl;
    std::cout &lt;&lt; &quot;Name: &quot; &lt;&lt; approach-&gt;getName() &lt;&lt; std::endl;
}

template&lt;typename T, typename U&gt;
struct E { 
  E(std::string const &amp;) { }
  std::string getName() { return &quot;E&quot;; }
};

struct F { };
struct G { static std::string getType() { return &quot;G&quot;; } };

int main() {
  std::string str = &quot;hallo&quot;;
  function&lt;E, F, G&gt;(str);
}
</code></pre>
<p>gibt</p>
<pre><code>Type: G
Name: E
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2410850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410850</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Mon, 28 Jul 2014 14:01:19 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit mehreren Typen on Mon, 28 Jul 2014 14:06:51 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ja, danke. Das Problem war, dass B auch ein Template ist, was mit B&lt;C&gt; aufgerufen wird.</p>
<p>So funktioniert es auch bei mir:</p>
<pre><code>template&lt;template&lt;template&lt;class C&gt; class B, class C&gt; class A, template&lt;class C&gt; class B, class C&gt;
void function(std::string a);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2410851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410851</guid><dc:creator><![CDATA[mikemodanoxxx]]></dc:creator><pubDate>Mon, 28 Jul 2014 14:06:51 GMT</pubDate></item></channel></rss>