<?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[Aus normaler Funktion ein Template machen]]></title><description><![CDATA[<p>Minimalbeispiel:</p>
<pre><code>struct Foo{
    Foo(const Foo &amp;foo){
        static_assert(0, &quot;Objekte vom Typ Foo sind nicht kopierbar&quot;);
    }
};
</code></pre>
<p>Jetzt möchte ich, dass Foo(const Foo &amp;foo) ein Template ist, damit das static_assert nur anschlägt, wenn der Nutzer versucht ein Foo zu kopieren und sonst nicht. Sowas wie template&lt;&gt; Foo(const Foo &amp;foo) oder so.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/318770/aus-normaler-funktion-ein-template-machen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 19:54:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/318770.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 25 Jul 2013 19:47:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Aus normaler Funktion ein Template machen on Thu, 25 Jul 2013 19:47:27 GMT]]></title><description><![CDATA[<p>Minimalbeispiel:</p>
<pre><code>struct Foo{
    Foo(const Foo &amp;foo){
        static_assert(0, &quot;Objekte vom Typ Foo sind nicht kopierbar&quot;);
    }
};
</code></pre>
<p>Jetzt möchte ich, dass Foo(const Foo &amp;foo) ein Template ist, damit das static_assert nur anschlägt, wenn der Nutzer versucht ein Foo zu kopieren und sonst nicht. Sowas wie template&lt;&gt; Foo(const Foo &amp;foo) oder so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341330</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Thu, 25 Jul 2013 19:47:27 GMT</pubDate></item><item><title><![CDATA[Reply to Aus normaler Funktion ein Template machen on Thu, 25 Jul 2013 19:49:58 GMT]]></title><description><![CDATA[<p>Warum nicht gleich richtig?</p>
<pre><code class="language-cpp">Foo(const Foo &amp;foo) =delete; // C++11
private: Foo(const Foo &amp;foo); // &lt;= C++03
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2341332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341332</guid><dc:creator><![CDATA[notemplate]]></dc:creator><pubDate>Thu, 25 Jul 2013 19:49:58 GMT</pubDate></item><item><title><![CDATA[Reply to Aus normaler Funktion ein Template machen on Thu, 25 Jul 2013 20:42:40 GMT]]></title><description><![CDATA[<p>Weil der Compiler dann sagt, dass Foo(const Foo &amp;foo) private ist oder nicht existiert. Das ist nicht das was ich ausdrücken will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341342</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Thu, 25 Jul 2013 20:42:40 GMT</pubDate></item><item><title><![CDATA[Reply to Aus normaler Funktion ein Template machen on Thu, 25 Jul 2013 23:55:58 GMT]]></title><description><![CDATA[<p>Der Kopierkonstruktor existiert nicht / ist privat - Foo lässt sich nicht kopieren - Objekte vom Typ Foo sind nicht kopierbar.<br />
Was möchtest du noch einmal ausdrücken?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341358</guid><dc:creator><![CDATA[doch]]></dc:creator><pubDate>Thu, 25 Jul 2013 23:55:58 GMT</pubDate></item><item><title><![CDATA[Reply to Aus normaler Funktion ein Template machen on Fri, 26 Jul 2013 04:24:24 GMT]]></title><description><![CDATA[<pre><code>struct Foo
{
    template &lt;typename = void&gt;
    Foo(Foo const&amp;) { static_assert(false, &quot;blubb&quot;); }
};
</code></pre>
<p>Ungetestet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341364</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Fri, 26 Jul 2013 04:24:24 GMT</pubDate></item><item><title><![CDATA[Reply to Aus normaler Funktion ein Template machen on Fri, 26 Jul 2013 06:12:58 GMT]]></title><description><![CDATA[<p>Wenn Dein &quot;Nutzer&quot; nicht weiß, was ein privater Kopierkonstruktor bedeutet, dann sollte er vielleicht seine Finger von der Sprache lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341370</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 26 Jul 2013 06:12:58 GMT</pubDate></item><item><title><![CDATA[Reply to Aus normaler Funktion ein Template machen on Fri, 26 Jul 2013 07:34:29 GMT]]></title><description><![CDATA[<p>Wenn du deinen Usern eine Meldung mit auf den Weg geben willst, dann schreib' neben die Definition einfach ein Kommentar:</p>
<pre><code>Foo(Foo const&amp; foo) = delete; // Diese Klasse ist nicht kopierbar.
</code></pre>
<p>Sonst gebe ich Tachyon recht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341387</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 26 Jul 2013 07:34:29 GMT</pubDate></item></channel></rss>