<?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[Typdef geht nicht]]></title><description><![CDATA[<p>Warum bekomme ich Fehlermeldungen, dass SceneNodePtr nicht deklariert ist?</p>
<pre><code>class SceneNode
{
public:

    typedef std::unique_ptr&lt;SceneNode&gt; SceneNodePtr;

    void attachChild(SceneNodePtr child);
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/320634/typdef-geht-nicht</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 15:31:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/320634.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 05 Oct 2013 19:42:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Typdef geht nicht on Sat, 05 Oct 2013 19:42:27 GMT]]></title><description><![CDATA[<p>Warum bekomme ich Fehlermeldungen, dass SceneNodePtr nicht deklariert ist?</p>
<pre><code>class SceneNode
{
public:

    typedef std::unique_ptr&lt;SceneNode&gt; SceneNodePtr;

    void attachChild(SceneNodePtr child);
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2358170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2358170</guid><dc:creator><![CDATA[DuffCola]]></dc:creator><pubDate>Sat, 05 Oct 2013 19:42:27 GMT</pubDate></item><item><title><![CDATA[Reply to Typdef geht nicht on Sat, 05 Oct 2013 19:45:13 GMT]]></title><description><![CDATA[<p>Liegt die Fehlermeldung direkt in Zeile 7? Dann weiß ich nicht weiter.</p>
<p>Und natürlich auch sonst nicht, denn du gibst praktisch keine Fehlermeldung oder Angaben. Und die Glaskugel wird gereinigt (zu viele Kaugummis am Boden).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2358171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2358171</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sat, 05 Oct 2013 19:45:13 GMT</pubDate></item><item><title><![CDATA[Reply to Typdef geht nicht on Sat, 05 Oct 2013 19:59:27 GMT]]></title><description><![CDATA[<p>Vermutlich ist SceneNode/unique_ptr nicht deklariert. Da bekommt man manchmal so mysteriöse Fehlermeldungen. Header vergessen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2358176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2358176</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sat, 05 Oct 2013 19:59:27 GMT</pubDate></item><item><title><![CDATA[Reply to Typdef geht nicht on Sat, 05 Oct 2013 20:07:32 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Vermutlich ist SceneNode/unique_ptr nicht deklariert. Da bekommt man manchmal so mysteriöse Fehlermeldungen.</p>
</blockquote>
<p>Kenne ich nicht, macht auch keinen Sinn. Da sollte direkt das Typedef krachen. Wieso sollte es stattdessen einfach ignoriert werden?</p>
<p>Edit: Bei VC++ weiß man natürlich nie. Beim GCC wäre so etwas nicht passiert.<br />
Aber ich gehe davon aus, dass das nicht alles ist, was die Fehlermeldung hergibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2358177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2358177</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sat, 05 Oct 2013 20:07:32 GMT</pubDate></item><item><title><![CDATA[Reply to Typdef geht nicht on Sat, 05 Oct 2013 20:19:02 GMT]]></title><description><![CDATA[<p>Ne, gerade beim GCC hatte ich schon öfters das Problem dass ein Typedef heimlich kaputt ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2358179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2358179</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sat, 05 Oct 2013 20:19:02 GMT</pubDate></item><item><title><![CDATA[Reply to Typdef geht nicht on Sat, 05 Oct 2013 20:23:07 GMT]]></title><description><![CDATA[<p>Ich tippe mal, es liegt daran, dass SceneNode an dieser Stelle noch incomplete ist, der unique_ptr aber nicht mit incomplete Typen funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2358181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2358181</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sat, 05 Oct 2013 20:23:07 GMT</pubDate></item><item><title><![CDATA[Reply to Typdef geht nicht on Sat, 05 Oct 2013 20:38:18 GMT]]></title><description><![CDATA[<p>Das kann eigentlich sogar sein, ich erinnere mich - das ist mir doch schon einmal passiert. Ein Typedef war da nicht definiert, weil ein Fehler in der Instantiierung des getypedeften Namens auftrat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2358185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2358185</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sat, 05 Oct 2013 20:38:18 GMT</pubDate></item><item><title><![CDATA[Reply to Typdef geht nicht on Sat, 05 Oct 2013 21:49:08 GMT]]></title><description><![CDATA[<pre><code>#include &lt;memory&gt;
#include &lt;cstddef&gt;

class SceneNode
{
public:

    typedef std::unique_ptr&lt;SceneNode&gt; SceneNodePtr;

    void attachChild(SceneNodePtr) {}
};

int main()
{
	SceneNode n;
	n.attachChild(SceneNode::SceneNodePtr());
}
</code></pre>
<p>Es funktioniert bei mir problemlos. Eigentlich dürften es auch keine Probleme geben, da der Type erst beim Istanziieren eines Aufrufes vom Klammer-Operator von std::default_delete vollständig sein muss, und das ist der Type ja bei dem Funktionsaufruf.</p>
<p>20.7.1 Class template unique_ptr schrieb:</p>
<blockquote>
<p>5 Each object of a type U instantiated from the unique_ptr template specified in this subclause has the strict<br />
ownership semantics, specified above, of a unique pointer. In partial satisfaction of these semantics, each<br />
such U is MoveConstructible and MoveAssignable, but is not CopyConstructible nor CopyAssignable.<br />
<strong>The template parameter T of unique_ptr may be an incomplete type.</strong></p>
</blockquote>
<p>20.7.1.1.2 default_delete schrieb:</p>
<blockquote>
<p>void operator()(T *ptr) const;<br />
3 Effects: calls delete on ptr.<br />
<strong>4 Remarks: If T is an incomplete type, the program is ill-formed.</strong></p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2358195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2358195</guid><dc:creator><![CDATA[FlashPut]]></dc:creator><pubDate>Sat, 05 Oct 2013 21:49:08 GMT</pubDate></item><item><title><![CDATA[Reply to Typdef geht nicht on Sun, 06 Oct 2013 12:23:39 GMT]]></title><description><![CDATA[<p>So habe es hinbekommen,<br />
ich musste in CodeBlocks unter den Compiler Settings das Flag &quot;Have g++ follow the C++11 ISO C++ language standard&quot; setzen.<br />
Jetzt funktioniert alles.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2358276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2358276</guid><dc:creator><![CDATA[DuffCola]]></dc:creator><pubDate>Sun, 06 Oct 2013 12:23:39 GMT</pubDate></item></channel></rss>