<?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[Instanzen der selben Template-Klasse und verschiedenen Template-Params in einer Liste speichern]]></title><description><![CDATA[<p>Weiß da jemand weiter?</p>
<p>Ich hab ne Klasse, mit der man Optionen zur Compile-Zeit erstellen kann. Dazu gehört die Options-ID und eine variable Anzahl von Parametern verschiedenen Typs, die in einem <code>std::tuple&lt;&gt;</code> abgelegt werden.</p>
<p>Dann habe ich Klassen(I) auf denen man diese Optionen applizieren kann.</p>
<p>Dann hab ich Klassen(II), die einen Haufen solcher Klassen(I) bündeln. Und hier will ich so ein Prototyp-Mechanismus bauen, also eine Liste dieser Compile-Time-Optionen und jedes Mal wenn man eine Klasse(I) an die Klasse(II) beifügt, so wird die Optionsliste auf Klasse(I) appliziert.</p>
<p>Nur kann man keine Listen von Typen unterschiedlichen Template-Parametern erstellen und ich such da nach so einem Weg.</p>
<p>Eine Möglichkeit wäre folgende: Man macht für die Options-Klasse eine abstrakte Basisklasse (basic_option), ohne Templates und nur eine pure virtuelle Methode, <code>apply()</code> .</p>
<p>Die Klasse <code>option&lt;&gt;</code> erbt von ihr und implementiert <code>apply()</code> .</p>
<p>Nun kann ich eine Liste aus lauter <code>basic_option</code> erstellen und beim applizieren auf Klassen(I) rufe ich dann die virtuelle Magie auf.</p>
<p>Der bestehende Nachteil ist, dass ich die Optionen im Nachhinein nicht mehr ändern kann - doch, ich kann die Liste höchstens leeren und sie mit neuen Werten befüttern.</p>
<p>Kennt jemand eine bessere Idee? Boost und &lt;=C++14 sind hier willkommen <strong>:</strong>)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/346954/instanzen-der-selben-template-klasse-und-verschiedenen-template-params-in-einer-liste-speichern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 19:20:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/346954.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Mar 2018 18:47:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Instanzen der selben Template-Klasse und verschiedenen Template-Params in einer Liste speichern on Fri, 30 Mar 2018 18:47:34 GMT]]></title><description><![CDATA[<p>Weiß da jemand weiter?</p>
<p>Ich hab ne Klasse, mit der man Optionen zur Compile-Zeit erstellen kann. Dazu gehört die Options-ID und eine variable Anzahl von Parametern verschiedenen Typs, die in einem <code>std::tuple&lt;&gt;</code> abgelegt werden.</p>
<p>Dann habe ich Klassen(I) auf denen man diese Optionen applizieren kann.</p>
<p>Dann hab ich Klassen(II), die einen Haufen solcher Klassen(I) bündeln. Und hier will ich so ein Prototyp-Mechanismus bauen, also eine Liste dieser Compile-Time-Optionen und jedes Mal wenn man eine Klasse(I) an die Klasse(II) beifügt, so wird die Optionsliste auf Klasse(I) appliziert.</p>
<p>Nur kann man keine Listen von Typen unterschiedlichen Template-Parametern erstellen und ich such da nach so einem Weg.</p>
<p>Eine Möglichkeit wäre folgende: Man macht für die Options-Klasse eine abstrakte Basisklasse (basic_option), ohne Templates und nur eine pure virtuelle Methode, <code>apply()</code> .</p>
<p>Die Klasse <code>option&lt;&gt;</code> erbt von ihr und implementiert <code>apply()</code> .</p>
<p>Nun kann ich eine Liste aus lauter <code>basic_option</code> erstellen und beim applizieren auf Klassen(I) rufe ich dann die virtuelle Magie auf.</p>
<p>Der bestehende Nachteil ist, dass ich die Optionen im Nachhinein nicht mehr ändern kann - doch, ich kann die Liste höchstens leeren und sie mit neuen Werten befüttern.</p>
<p>Kennt jemand eine bessere Idee? Boost und &lt;=C++14 sind hier willkommen <strong>:</strong>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554302</guid><dc:creator><![CDATA[stateofmind]]></dc:creator><pubDate>Fri, 30 Mar 2018 18:47:34 GMT</pubDate></item></channel></rss>