<?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[oop problem]]></title><description><![CDATA[<p>hi</p>
<p>ich hab ein basistemplate und zwei templateklassen die davon erben<br />
das basistempalte ist nicht instanziierbar da abstrakt. nun möchte ich einen enum (oder eine andere speicherklasse die keinen speicher braucht) definieren (also so dass garantiert ist, dass die abgeleiteten versionen diesen wert zur verfügung stellen). wie mach ich das am besten?</p>
<p>code ist in etwa so:</p>
<pre><code>template&lt;class T&gt;
struct base
{
    // enum {size}; ??
    void stuff() = 0;
};
template&lt;unsigned dimensions&gt;
struct derrived : base&lt;unsigned&gt;
{
    // enum {size = dimensions * 2}; ??
    void stuff() {}
}
</code></pre>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319179/oop-problem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Jul 2026 21:10:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319179.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Aug 2013 07:51:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to oop problem on Fri, 09 Aug 2013 07:51:03 GMT]]></title><description><![CDATA[<p>hi</p>
<p>ich hab ein basistemplate und zwei templateklassen die davon erben<br />
das basistempalte ist nicht instanziierbar da abstrakt. nun möchte ich einen enum (oder eine andere speicherklasse die keinen speicher braucht) definieren (also so dass garantiert ist, dass die abgeleiteten versionen diesen wert zur verfügung stellen). wie mach ich das am besten?</p>
<p>code ist in etwa so:</p>
<pre><code>template&lt;class T&gt;
struct base
{
    // enum {size}; ??
    void stuff() = 0;
};
template&lt;unsigned dimensions&gt;
struct derrived : base&lt;unsigned&gt;
{
    // enum {size = dimensions * 2}; ??
    void stuff() {}
}
</code></pre>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344605</guid><dc:creator><![CDATA[wurstbrotlol]]></dc:creator><pubDate>Fri, 09 Aug 2013 07:51:03 GMT</pubDate></item><item><title><![CDATA[Reply to oop problem on Fri, 09 Aug 2013 07:56:04 GMT]]></title><description><![CDATA[<p>nachtrag:<br />
im listing sollte die funktion in base natürlich virtual sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344606</guid><dc:creator><![CDATA[wurstbrotlol]]></dc:creator><pubDate>Fri, 09 Aug 2013 07:56:04 GMT</pubDate></item><item><title><![CDATA[Reply to oop problem on Fri, 09 Aug 2013 07:58:24 GMT]]></title><description><![CDATA[<pre><code>template&lt;class T,
         std::size_t Size&gt;
struct base : std::integral_constant&lt;std::size_t, Size&gt;
{
    virtual void stuff() = 0;
};

template&lt;unsigned dimensions&gt;
struct derived : base&lt;unsigned, dimensions * 2&gt;
{
    void stuff() {}
}
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344608</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 09 Aug 2013 07:58:24 GMT</pubDate></item><item><title><![CDATA[Reply to oop problem on Sun, 11 Aug 2013 07:50:51 GMT]]></title><description><![CDATA[<p>Ich würde hier ja nicht von integral_constant ableiten (semantik). Enum oder static const finde ich sinnvoller.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344946</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Sun, 11 Aug 2013 07:50:51 GMT</pubDate></item></channel></rss>