<?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[&amp;quot;No matching function call&amp;quot; bei template Funktion und ich weiß nicht warum]]></title><description><![CDATA[<p>Hi,<br />
ich habe ein kleines Problem. Und zwar scheint es, als ob er meine Funktion nicht findet.<br />
Definiert ist sie wie folgt:</p>
<pre><code class="language-cpp">namespace Lincpp
{
    template&lt;typename T&gt;
    detail::Proxy&lt;typename T::value_type&gt; from(const T&amp; v)
    {
         return detail::Proxy&lt;typename T::value_type&gt;(v.begin(), v.end());
    }
}
</code></pre>
<p>und ihr Aufruf geschieht hier:</p>
<pre><code class="language-cpp">//main.cpp
/*14*/std::vector&lt;int&gt; v = {1,2,3,4,5,6,7,8,9};
/*15*/auto result = Lincpp::from(v)
                    .where(IsFive)
                    .select(1);
</code></pre>
<p>Die Headerdatei der from-Funktion ist korrekt eingebunden, aber ich erhalte folgenden Fehler mit GCC-MinGW-TDragon 4.4.1 -std=c++0x :</p>
<blockquote>
<p>main.cpp|15|error: no matching function for call to 'from(std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;)'|</p>
</blockquote>
<p>Ohne Templateparameter ging es noch. Die Funktion war dann zu Testzwecken so definiert:</p>
<pre><code class="language-cpp">detail::Proxy&lt;int&gt; from(const std::vector&lt;int&gt;&amp; v)
{
     return detail::Proxy&lt;int&gt;(v.begin(), v.end());
}
</code></pre>
<p>Der Aufruf bleibt gleich.</p>
<p>Kann mir jemand vllt. sagen, wo der Fehler leigt und wie ich ihn beseitigen könnte?</p>
<p>Gruß Gate</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/248642/quot-no-matching-function-call-quot-bei-template-funktion-und-ich-weiß-nicht-warum</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 22:54:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/248642.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 27 Aug 2009 12:47:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;No matching function call&amp;quot; bei template Funktion und ich weiß nicht warum on Thu, 27 Aug 2009 12:47:12 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich habe ein kleines Problem. Und zwar scheint es, als ob er meine Funktion nicht findet.<br />
Definiert ist sie wie folgt:</p>
<pre><code class="language-cpp">namespace Lincpp
{
    template&lt;typename T&gt;
    detail::Proxy&lt;typename T::value_type&gt; from(const T&amp; v)
    {
         return detail::Proxy&lt;typename T::value_type&gt;(v.begin(), v.end());
    }
}
</code></pre>
<p>und ihr Aufruf geschieht hier:</p>
<pre><code class="language-cpp">//main.cpp
/*14*/std::vector&lt;int&gt; v = {1,2,3,4,5,6,7,8,9};
/*15*/auto result = Lincpp::from(v)
                    .where(IsFive)
                    .select(1);
</code></pre>
<p>Die Headerdatei der from-Funktion ist korrekt eingebunden, aber ich erhalte folgenden Fehler mit GCC-MinGW-TDragon 4.4.1 -std=c++0x :</p>
<blockquote>
<p>main.cpp|15|error: no matching function for call to 'from(std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;)'|</p>
</blockquote>
<p>Ohne Templateparameter ging es noch. Die Funktion war dann zu Testzwecken so definiert:</p>
<pre><code class="language-cpp">detail::Proxy&lt;int&gt; from(const std::vector&lt;int&gt;&amp; v)
{
     return detail::Proxy&lt;int&gt;(v.begin(), v.end());
}
</code></pre>
<p>Der Aufruf bleibt gleich.</p>
<p>Kann mir jemand vllt. sagen, wo der Fehler leigt und wie ich ihn beseitigen könnte?</p>
<p>Gruß Gate</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1767643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1767643</guid><dc:creator><![CDATA[Gate]]></dc:creator><pubDate>Thu, 27 Aug 2009 12:47:12 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;No matching function call&amp;quot; bei template Funktion und ich weiß nicht warum on Thu, 27 Aug 2009 13:41:02 GMT]]></title><description><![CDATA[<p>Also mit MSVC kann ich den Fehler nicht reproduzieren - das hier compiliert zumindest:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

namespace detail
{
	template &lt;typename T&gt;
	struct test
	{
		template &lt;typename Titerator&gt;
		test (Titerator begin, Titerator end) {}
	};
}

template&lt;typename T&gt; 
detail::test&lt;typename T::value_type&gt; from(const T&amp; v)
{
	return detail::test&lt;typename T::value_type&gt; (v.begin(), v.end());
}

int main()
{
	std::vector&lt;int&gt; tmp;
	detail::test&lt;int&gt; x = from(tmp);
}
</code></pre>
<p>Bei dir auch?<br />
Falls ja, musst du den Fehler wohl woanders suchen ^^ Ggf kannst du das <code>detail::test&lt;int&gt;</code> vor dem <code>x</code> durch auto ersetzen, falls du glaubst, dass es daran liegen könnte...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1767690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1767690</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 27 Aug 2009 13:41:02 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;No matching function call&amp;quot; bei template Funktion und ich weiß nicht warum on Thu, 27 Aug 2009 15:23:39 GMT]]></title><description><![CDATA[<p>Okay ich hab den Fehler.<br />
Erstmal, deine Variante hat bei mir mit oder ohne auto auch einwandfrei kompiliert.<br />
Nach ein bisschen herumprobieren hab ich festgestellt, dass es am Rückgabetyp liegt, also an der Proxyklasse.<br />
Ganz genau ist der Fehler hier:</p>
<pre><code class="language-cpp">template&lt;typename T, class ResultContainer = std::vector&lt;typename T::value_type&gt; &gt;
class Proxy
{
</code></pre>
<p>Der zweite Parameter erzeugt den Fehler. Diesen ausklammern und es kompiliert. Die Frage von mir wäre jetzt noch, wie muss deklariere ich den optionalen Templateparameter denn richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1767768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1767768</guid><dc:creator><![CDATA[Gate]]></dc:creator><pubDate>Thu, 27 Aug 2009 15:23:39 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;No matching function call&amp;quot; bei template Funktion und ich weiß nicht warum on Thu, 27 Aug 2009 15:50:27 GMT]]></title><description><![CDATA[<p>Probier mal</p>
<pre><code class="language-cpp">template&lt;typename T, class ResultContainer = std::vector&lt;T&gt; &gt;
class Proxy
{
</code></pre>
<p>T ist doch bereits dein value_type du probiert also auf std::vector&lt;int&gt;::value_type::value_type zuzugreifen. Das geht nicht. SFINAE schluckt dir eine bessere Fehlermeldung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1767781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1767781</guid><dc:creator><![CDATA[Ben04]]></dc:creator><pubDate>Thu, 27 Aug 2009 15:50:27 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;No matching function call&amp;quot; bei template Funktion und ich weiß nicht warum on Thu, 27 Aug 2009 15:52:59 GMT]]></title><description><![CDATA[<p>Oh man, natürlich haste ja recht. Man, dass ich das nicht gesehen hab. Naja manchmal übersieht man dann doch das offensichtliche <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="🙂"
    /><br />
Okay, vielen Dank dir, jetzt läuft alles.</p>
<p>Gruß Gate</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1767782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1767782</guid><dc:creator><![CDATA[Gate]]></dc:creator><pubDate>Thu, 27 Aug 2009 15:52:59 GMT</pubDate></item></channel></rss>