<?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[final class]]></title><description><![CDATA[<p>finale klasse</p>
<p>folgender source compiliert unter VC++ 2012 ohne probleme:</p>
<pre><code class="language-cpp">template&lt;class T&gt;
class is_final final : public T
{

};

class test
{
   public:
      test(void) : value(0) { }

      int value;

};

typedef is_final&lt;test&gt; ftest;

class test2 : public ftest
{

};

template&lt;class T&gt;
bool is_final_check(const T &amp;t)
{
   return false;
}

template&lt;class T&gt;
bool is_final_check(const is_final&lt;T&gt; &amp;isf)
{
   return true;
}

int main(int param_count, char **param)
{
   ftest t2;
   test2 t;
   std::cout &lt;&lt; t.value &lt;&lt; std::endl;
   std::cout &lt;&lt; is_final_check(12) &lt;&lt; std::endl;
   std::cout &lt;&lt; is_final_check(t2) &lt;&lt; std::endl;

   return 0;
}
</code></pre>
<p>sollte er bei der klasse test2 nicht meckern, das eine ableitung nicht moeglich ist ?</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/308083/final-class</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 03:00:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/308083.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 14 Sep 2012 05:17:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to final class on Fri, 14 Sep 2012 05:17:27 GMT]]></title><description><![CDATA[<p>finale klasse</p>
<p>folgender source compiliert unter VC++ 2012 ohne probleme:</p>
<pre><code class="language-cpp">template&lt;class T&gt;
class is_final final : public T
{

};

class test
{
   public:
      test(void) : value(0) { }

      int value;

};

typedef is_final&lt;test&gt; ftest;

class test2 : public ftest
{

};

template&lt;class T&gt;
bool is_final_check(const T &amp;t)
{
   return false;
}

template&lt;class T&gt;
bool is_final_check(const is_final&lt;T&gt; &amp;isf)
{
   return true;
}

int main(int param_count, char **param)
{
   ftest t2;
   test2 t;
   std::cout &lt;&lt; t.value &lt;&lt; std::endl;
   std::cout &lt;&lt; is_final_check(12) &lt;&lt; std::endl;
   std::cout &lt;&lt; is_final_check(t2) &lt;&lt; std::endl;

   return 0;
}
</code></pre>
<p>sollte er bei der klasse test2 nicht meckern, das eine ableitung nicht moeglich ist ?</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251157</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Fri, 14 Sep 2012 05:17:27 GMT</pubDate></item><item><title><![CDATA[Reply to final class on Fri, 14 Sep 2012 07:06:31 GMT]]></title><description><![CDATA[<p>Meep Meep schrieb:</p>
<blockquote>
<p>sollte er bei der klasse test2 nicht meckern, das eine ableitung nicht moeglich ist ?</p>
</blockquote>
<p>ja.</p>
<p>Versuchst du so etwas?</p>
<pre><code class="language-cpp">#include &lt;type_traits&gt;

template &lt;typename T&gt;
struct is_final_detail
{
    template &lt;typename U&gt;
    struct helper : U {};
    typedef char&amp; no;
    typedef char(&amp;yes)[2];
    template &lt;typename U&gt;
    static yes test(...);
    template &lt;typename U&gt;
    static no test(int helper&lt;U&gt;::*);
    static constexpr bool value = sizeof(test&lt;T&gt;((int T::*)0))==sizeof(yes);
};

template &lt;typename T&gt;
struct is_final : std::conditional&lt;std::is_class&lt;T&gt;::value, is_final_detail&lt;T&gt;, std::false_type&gt;::type {};

struct foo {};
struct bar final {};

static_assert( !is_final&lt;int&gt;::value, &quot;&quot; );
static_assert( !is_final&lt;foo&gt;::value, &quot;&quot; );
static_assert( is_final&lt;bar&gt;::value, &quot;&quot; );
</code></pre>
<p>(funktioniert auch nicht)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251170</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 14 Sep 2012 07:06:31 GMT</pubDate></item><item><title><![CDATA[Reply to final class on Fri, 14 Sep 2012 09:06:38 GMT]]></title><description><![CDATA[<p>Ach, ich bin so doof. Hat sich erledigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251195</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 14 Sep 2012 09:06:38 GMT</pubDate></item><item><title><![CDATA[Reply to final class on Fri, 14 Sep 2012 16:12:04 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template&lt;class T&gt;
class is_final final : public T
{

};
</code></pre>
<p>Was soll das den heißen? Schreibfehler?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251272</guid><dc:creator><![CDATA[BlauBaer1]]></dc:creator><pubDate>Fri, 14 Sep 2012 16:12:04 GMT</pubDate></item><item><title><![CDATA[Reply to final class on Fri, 14 Sep 2012 16:52:33 GMT]]></title><description><![CDATA[<p>BlauBaer1 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">template&lt;class T&gt;
class is_final final : public T
{
   
};
</code></pre>
<p>Was soll das den heißen? Schreibfehler?</p>
<p>MfG</p>
</blockquote>
<p>Wie was soll das heißen? Es soll genau das heißen, was da steht. Wenn es ein Schreibfehler gäbe, würde VS es mit Sicherheit nicht kompilieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251282</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 14 Sep 2012 16:52:33 GMT</pubDate></item><item><title><![CDATA[Reply to final class on Fri, 14 Sep 2012 16:55:35 GMT]]></title><description><![CDATA[<p>Tut es ja auch!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251286</guid><dc:creator><![CDATA[BlauBaer1]]></dc:creator><pubDate>Fri, 14 Sep 2012 16:55:35 GMT</pubDate></item><item><title><![CDATA[Reply to final class on Sat, 15 Sep 2012 16:53:52 GMT]]></title><description><![CDATA[<p>Würde mich auch mal Interessieren, was das final da macht, habe es noch nie so gesehen. Würde mich über eine Erklärung freuen.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251464</guid><dc:creator><![CDATA[yihaaa]]></dc:creator><pubDate>Sat, 15 Sep 2012 16:53:52 GMT</pubDate></item><item><title><![CDATA[Reply to final class on Sat, 15 Sep 2012 17:25:41 GMT]]></title><description><![CDATA[<p>n3337 schrieb:</p>
<blockquote>
<p>9 Classes<br />
[...]<br />
<em>class-specifier:<br />
class-head { member-specification<sub>opt</sub> }<br />
class-head:<br />
class-key attribute-specifier-seq<sub>opt</sub> class-head-name class-virt-specifier<sub>opt</sub> base-clause<sub>opt</sub><br />
class-key attribute-specifier-seq<sub>opt</sub> base-clause<sub>opt</sub><br />
class-head-name:<br />
nested-name-specifier<sub>opt</sub> class-name<br />
class-virt-specifier:</em><br />
final<br />
<em>class-key:</em><br />
class<br />
struct<br />
union<br />
[...]<br />
3 <strong>If a class is marked with the class-virt-specifier final and it appears as a base-type-specifier in a base-clause<br />
(Clause 10), the program is ill-formed.</strong></p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2251475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251475</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 15 Sep 2012 17:25:41 GMT</pubDate></item><item><title><![CDATA[Reply to final class on Sat, 15 Sep 2012 17:26:24 GMT]]></title><description><![CDATA[<p>yihaaa schrieb:</p>
<blockquote>
<p>Würde mich auch mal Interessieren, was das final da macht, habe es noch nie so gesehen. Würde mich über eine Erklärung freuen.</p>
</blockquote>
<p>lmgtfy <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <a href="http://en.wikipedia.org/wiki/C%2B%2B11#Explicit_overrides_and_final" rel="nofollow">Explicit overrides and final</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251476</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sat, 15 Sep 2012 17:26:24 GMT</pubDate></item></channel></rss>