<?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[Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist?]]></title><description><![CDATA[<p>Ich würde gerne wissen, ob es möglich ist, zur Laufzeit zu prüfen, ob ein Constructor aufgerufen werden kann.</p>
<p>Sinn und Zweck: Ich hab eine Klasse, deren Ctor und CopyCtor private sind. Um dies zu testen, würd ich gerne ein Testszenario bauen, was mir diese Eigenschaften testet, ohne zur kompilierzeit einen compiler-fehler zu werfen.</p>
<p>Ein plumper aufruf würde natürlich zur compilezeit in die hose gehen und introspection kann c++ auch nicht, hab ich also schlechte karten?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/243540/ist-es-möglich-zur-laufzeit-zu-testen-ob-ein-constructor-public-ist</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 01:06:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/243540.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Jun 2009 07:36:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 07:36:43 GMT]]></title><description><![CDATA[<p>Ich würde gerne wissen, ob es möglich ist, zur Laufzeit zu prüfen, ob ein Constructor aufgerufen werden kann.</p>
<p>Sinn und Zweck: Ich hab eine Klasse, deren Ctor und CopyCtor private sind. Um dies zu testen, würd ich gerne ein Testszenario bauen, was mir diese Eigenschaften testet, ohne zur kompilierzeit einen compiler-fehler zu werfen.</p>
<p>Ein plumper aufruf würde natürlich zur compilezeit in die hose gehen und introspection kann c++ auch nicht, hab ich also schlechte karten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728582</guid><dc:creator><![CDATA[Seikilos]]></dc:creator><pubDate>Thu, 18 Jun 2009 07:36:43 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 07:42:56 GMT]]></title><description><![CDATA[<p>Verstehe ich Dich korrekt?<br />
Du willst was testen, was gar nicht möglich ist?<br />
Scheint mir unvernüftig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728586</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Thu, 18 Jun 2009 07:42:56 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 07:43:57 GMT]]></title><description><![CDATA[<p>Seikilos schrieb:</p>
<blockquote>
<p>Ich würde gerne wissen, ob es möglich ist, zur Laufzeit zu prüfen, ob ein Constructor aufgerufen werden kann.</p>
</blockquote>
<p>Nein.</p>
<p>Seikilos schrieb:</p>
<blockquote>
<p>...würd ich gerne ein Testszenario bauen, was mir diese Eigenschaften testet, ohne zur kompilierzeit einen compiler-fehler zu werfen.</p>
</blockquote>
<p>Was unsinnig ist. Fehler die bereits zur Compilezeit abgefangen werden können, sollten das auch. Fehler die zur Laufzeit auftreten sind deutlich problematischer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728587</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 18 Jun 2009 07:43:57 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 07:54:11 GMT]]></title><description><![CDATA[<p>Ist mir schon klar, ich will auch nicht den Fehler in die Laufzeit bringen, sondern nur meine Möglichkeiten zur Laufzeit auswerten.<br />
Aber stimmt schon, das ist ein Fall für Introspection und Reflection.</p>
<p>Natürlich will ich das testen, wenn ich Unit Tests schreibe und die logs jemand fremdes anguckt, soll er die Funktionalität der getesteten Unit erkennen können</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728595</guid><dc:creator><![CDATA[Seikilos]]></dc:creator><pubDate>Thu, 18 Jun 2009 07:54:11 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 08:10:46 GMT]]></title><description><![CDATA[<p>In C++ macht das absolut keinen Sinn.<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728611</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Thu, 18 Jun 2009 08:10:46 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 08:17:17 GMT]]></title><description><![CDATA[<p>Seikilos schrieb:</p>
<blockquote>
<p>Funktionalität der getesteten Unit erkennen können</p>
</blockquote>
<p>Die Nicht-Sichtbarkeit des Konstruktors ist doch keine Funktionalität.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728613</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 18 Jun 2009 08:17:17 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 08:28:59 GMT]]></title><description><![CDATA[<p>Im Kompilat existiert kein public mehr. Also kann man das auch nicht mehr testen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728621</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Thu, 18 Jun 2009 08:28:59 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 08:51:07 GMT]]></title><description><![CDATA[<p>Seikilos schrieb:</p>
<blockquote>
<p>Ist mir schon klar, ich will auch nicht den Fehler in die Laufzeit bringen, sondern nur meine Möglichkeiten zur Laufzeit auswerten.</p>
</blockquote>
<p>Wie soll dies gehen wenn es bereits in der Kompilierung abgefangen wird? Es ist weder sinnvoll noch machbar es in der Laufzeit auszuwerten.</p>
<p>Seikilos schrieb:</p>
<blockquote>
<p>Aber stimmt schon, das ist ein Fall für Introspection und Reflection.</p>
</blockquote>
<p>Was nicht von C++ abgedeckt wird (und das Fehlen auf der einen Seite ist ein Vorteil auf der anderen Seite - Ich finde es gut wenn einige Prüfungen in die Compilezeit verlagert werden. Alles was nicht vor der Laufzeit schon ausgemerzt wird, ist eine weitere Fehlerquelle).</p>
<p>Es kann sein (ich bin mir sogar relativ sicher) das du solche Testfälle als Templatetechniken umsetzen kannst =&gt; Die Auswertung erfolgt aber ebenso zur Compilezeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728632</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 18 Jun 2009 08:51:07 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 09:14:48 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Im Kompilat existiert kein public mehr. Also kann man das auch nicht mehr testen.</p>
</blockquote>
<p>Klar, mein Ziel war es zu testen, dass kein public ctor existiert.</p>
<p>compilezeit tests gehen absolut garnicht. das sind tests die in automatisierten regression tests laufen und am ende ein protokoll ausspucken. Ist ein bisschen blöd, wenn man einen von tausend tests nicht kompilieren kann und somit sein regression testing nicht ausführen kann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728655</guid><dc:creator><![CDATA[Seikilos]]></dc:creator><pubDate>Thu, 18 Jun 2009 09:14:48 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 09:17:36 GMT]]></title><description><![CDATA[<p>Seikilos schrieb:</p>
<blockquote>
<p>compilezeit tests gehen absolut garnicht. das sind tests die in automatisierten regression tests laufen und am ende ein protokoll ausspucken. Ist ein bisschen blöd, wenn man einen von tausend tests nicht kompilieren kann und somit sein regression testing nicht ausführen kann</p>
</blockquote>
<p>Wenn das Kompilieren eines Tests fehlschlägt, ist der ganze Test fehlgeschlagen. Das könntest du protokollieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728658</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Thu, 18 Jun 2009 09:17:36 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 09:24:27 GMT]]></title><description><![CDATA[<p>Seikilos schrieb:</p>
<blockquote>
<p>...<br />
compilezeit tests gehen absolut garnicht. das sind tests die in automatisierten regression tests laufen und am ende ein protokoll ausspucken. Ist ein bisschen blöd, wenn man einen von tausend tests nicht kompilieren kann und somit sein regression testing nicht ausführen kann</p>
</blockquote>
<p>hmmm, ich wüsste nicht, was dagegen spräche, in diese Tests einen einzelnen Test einzubauen, bei dem</p>
<pre><code class="language-cpp">#include &lt;myAppClass.h&gt;

int main() {
   myAppClass a;
   return 0;
}
</code></pre>
<p>compiliert wird und der als positiv gewertet wird, wenn der Compile mit einem bestimmten Fehler abbricht.<br />
Das Compile-Ergebnis wird natürlich NICHT für die restlichen Tests verwendet (zumal ja nur ein Object erzeugt wird, wenn der Test fehlgeschlagen ist).</p>
<p>Insgesamt ist natürlich zu überlegen, wie die Ergebnisse der anderen Tests zu bewerten sind, wenn ein derartiger Fehler in der Klassenstruktur gefunden wird....</p>
<p>In bestimmten sehr speziellen Environments mag es natürlich sehr schwierig sein, auf der Testplattform zu compilieren ... aber für den Test braucht man keinen bestimmten Compiler, keine Libs und auch sonst eigentlich keine weitere Buildkomponente. Nur halt den Header, das TestPG und irgendeinen C++-Compiler.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728660</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 18 Jun 2009 09:24:27 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 10:35:02 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/532">@Christoph</a>: Ja, manuell. Das ist aber nicht der Sinn von Regression-Tests die über Nacht laufen.<br />
Ferner kann dann garnichts mehr kompilieren, wenn ich 100 Tests habe und einer dieser ctor test ist und dieser nicht kompiliert, werden die anderen 99 auch nicht mehr gestartet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728705</guid><dc:creator><![CDATA[Seikilos]]></dc:creator><pubDate>Thu, 18 Jun 2009 10:35:02 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 11:03:46 GMT]]></title><description><![CDATA[<p>Seikilos schrieb:</p>
<blockquote>
<p>Ferner kann dann garnichts mehr kompilieren, wenn ich 100 Tests habe und einer dieser ctor test ist und dieser nicht kompiliert, werden die anderen 99 auch nicht mehr gestartet</p>
</blockquote>
<p>Das gleiche passiert dann auch bei Tippfehlern im Code - dafür willst du doch auch keine spezifischen Tests schreiben. Behandle einen falschen Konstruktor einfach genauso wie einen Tippfehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728725</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Thu, 18 Jun 2009 11:03:46 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 11:24:08 GMT]]></title><description><![CDATA[<p>Seikilos schrieb:</p>
<blockquote>
<p>...<br />
Ferner kann dann garnichts mehr kompilieren, wenn ich 100 Tests habe und einer dieser ctor test ist und dieser nicht kompiliert, werden die anderen 99 auch nicht mehr gestartet</p>
</blockquote>
<p>Das habe ich immer noch nicht verstanden.<br />
Ich stelle mir eine Testsuite ganz grob vereinfacht vor wie folgendes Skript:</p>
<pre><code># Testlauf.sh
test1.sh  &gt; erg.log
test2.sh &gt;&gt; erg.log
test3.sh &gt;&gt; erg.log
test4.sh &gt;&gt; erg.log
test5.sh &gt;&gt; erg.log
test6.sh &gt;&gt; erg.log
</code></pre>
<p>und dann (kein Paradebeispiel für Skriptprogrammierung ... ich weiß <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )</p>
<pre><code># test3.sh
g++ -c myAppClass.DefCtorCheck.cpp -o /dev/null/myAppClass.DefCtorCheck.o &gt; test3.log
CheckVal=`grep -c &quot;no default constructor&quot; test3.log`
if [ &quot;$CheckVal&quot; == &quot;1&quot; ]; then
   echo &quot;OK&quot;
   exit 0
fi

echo &quot;FAILED&quot;
exit 1
</code></pre>
<p>Warum sollten die anderen Tests nicht weiterlaufen?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728738</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 18 Jun 2009 11:24:08 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 11:45:44 GMT]]></title><description><![CDATA[<p>Weil es eine Datei ist und portabel sein soll.</p>
<p>Niemand will hier bash oder batch scripte auf mehreren Systemen aktuell halten.</p>
<p>In meinem Szenario gibt es eine einzige Exe, die die Tests der Komponenten pro Projekt durchläuft</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728755</guid><dc:creator><![CDATA[Seikilos]]></dc:creator><pubDate>Thu, 18 Jun 2009 11:45:44 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 11:58:22 GMT]]></title><description><![CDATA[<p>OK,</p>
<p>dass es sich um unterschiedliche Testsysteme und -plattformen handelt, hatte ich bislang nicht verstanden.<br />
Verstehe ich denn jetzt richtig, dass Du ein Testprogram in C++ schreibst, das dann für die unterschiedlichen Plattformen compiliert/gelinkt und dorthin ausgeliefert wird?</p>
<p>Dann müsste Dein Testprogramm die Schnittstellen der Klassen aber sowieso kennen, sowieso compiliert werden , ....</p>
<p>Nunja - langer Rede kurzer Sinn: Ich sehe weder die Notwendigkeit, sowas zur Laufzeit zu testen (vergleichbar mit den Tippfehlern im Code) noch kenne ich einen Mechanismus, der das (auch noch plattformübergreifend!) auch nur annähernd so zuverlässig prüfen kann wie ein Compiler.<br />
(OK - wenn Du mit Debug-Info buildest, kann ich mir noch andere Toosl vorstellen, aber das willst Du besser nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> ).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728762</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 18 Jun 2009 11:58:22 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 12:21:56 GMT]]></title><description><![CDATA[<p>Kann ich zur Compilezeit festellen ob ein ctor nicht public ist.<br />
Also einen &quot;Fehler&quot; im Test erzeugen falls eine Klasse einen public ctor hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728780</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Thu, 18 Jun 2009 12:21:56 GMT</pubDate></item><item><title><![CDATA[Reply to Ist es möglich zur Laufzeit zu testen, ob ein Constructor public ist? on Thu, 18 Jun 2009 12:49:31 GMT]]></title><description><![CDATA[<p>Ich kann mir nicht vorstellen, wie das gehen soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728810</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Thu, 18 Jun 2009 12:49:31 GMT</pubDate></item></channel></rss>