<?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[Frage: delete und Makros]]></title><description><![CDATA[<p>Hey hey,</p>
<p>ich habe mal eine kleine Frage und zwar ist es ja moeglich, dass man<br />
bei einem New-Aufruf mit Hilfe eines Makros noch weitere Informationen hinzufuegen<br />
kann.</p>
<pre><code class="language-cpp">#define new new(__FILE__,__LINE__)
</code></pre>
<p>Und wenn man den new-Operator dann ueberlaedt, dann hat man Zugriff auf diese Informationen:</p>
<pre><code class="language-cpp">void* operator new(size_t requested_size, const char *file, unsigned long line) 
{	
	std::cout &lt;&lt; file &lt;&lt; &quot; ... &quot; &lt;&lt; line &lt;&lt; std::endl;
}
</code></pre>
<p>Wie geht diese Funktionalitaet mit delete?</p>
<p>Wenn ich das Makro</p>
<pre><code class="language-cpp">#define delete delete(__FILE__,__LINE__)
</code></pre>
<p>definiere und den ueberladenen Operator aufrufe, dann geht das nicht, weil delete einen Pointer erwartet. Gibts dafuer irgendeine Moeglichkeit oder ist<br />
das ausgeschlossen ?!</p>
<p>Danke schonmal!<br />
Mit freundlichen Gruessen<br />
sevenWaysToLove</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/182067/frage-delete-und-makros</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 17:22:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182067.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 May 2007 08:09:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage: delete und Makros on Mon, 21 May 2007 08:09:49 GMT]]></title><description><![CDATA[<p>Hey hey,</p>
<p>ich habe mal eine kleine Frage und zwar ist es ja moeglich, dass man<br />
bei einem New-Aufruf mit Hilfe eines Makros noch weitere Informationen hinzufuegen<br />
kann.</p>
<pre><code class="language-cpp">#define new new(__FILE__,__LINE__)
</code></pre>
<p>Und wenn man den new-Operator dann ueberlaedt, dann hat man Zugriff auf diese Informationen:</p>
<pre><code class="language-cpp">void* operator new(size_t requested_size, const char *file, unsigned long line) 
{	
	std::cout &lt;&lt; file &lt;&lt; &quot; ... &quot; &lt;&lt; line &lt;&lt; std::endl;
}
</code></pre>
<p>Wie geht diese Funktionalitaet mit delete?</p>
<p>Wenn ich das Makro</p>
<pre><code class="language-cpp">#define delete delete(__FILE__,__LINE__)
</code></pre>
<p>definiere und den ueberladenen Operator aufrufe, dann geht das nicht, weil delete einen Pointer erwartet. Gibts dafuer irgendeine Moeglichkeit oder ist<br />
das ausgeschlossen ?!</p>
<p>Danke schonmal!<br />
Mit freundlichen Gruessen<br />
sevenWaysToLove</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1288858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1288858</guid><dc:creator><![CDATA[sevenWaysToLove]]></dc:creator><pubDate>Mon, 21 May 2007 08:09:49 GMT</pubDate></item><item><title><![CDATA[Reply to Frage: delete und Makros on Mon, 21 May 2007 09:25:03 GMT]]></title><description><![CDATA[<p>du handlest dir damit viel ärger ein. wäre bessewr, du würdest delete ohne parameter lassen. brauchst ja auch bei8m debuggen nur zu wissen, welches new schuld ist am speicherloch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1288907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1288907</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 21 May 2007 09:25:03 GMT</pubDate></item><item><title><![CDATA[Reply to Frage: delete und Makros on Tue, 22 May 2007 13:01:29 GMT]]></title><description><![CDATA[<p>Hallo nochmal,</p>
<p>in wie weit handel ich mir mit dem Überladen mit zusätzlichen Parametern von delete Ärger ein? Der Operator wird doch danach ganz normal aufgerufen oder gibts hier eine Besonderheit bei C++?</p>
<p>MfG<br />
sevenWaysToLove</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1289915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1289915</guid><dc:creator><![CDATA[sevenWaysToLove]]></dc:creator><pubDate>Tue, 22 May 2007 13:01:29 GMT</pubDate></item><item><title><![CDATA[Reply to Frage: delete und Makros on Tue, 22 May 2007 14:20:01 GMT]]></title><description><![CDATA[<p>sevenWaysToLove schrieb:</p>
<blockquote>
<p>Hallo nochmal,<br />
in wie weit handel ich mir mit dem Überladen mit zusätzlichen Parametern von delete Ärger ein? Der Operator wird doch danach ganz normal aufgerufen oder gibts hier eine Besonderheit bei C++?<br />
MfG<br />
sevenWaysToLove</p>
</blockquote>
<p>du allokierst mit<br />
Socket* s=new(&quot;c:/test/test.cpp&quot;,15) Socket;<br />
dir speicher und übergibst den einer anderen übersetungseinheit. und die löscht ihn mit<br />
delete s;<br />
willste wirklich erzwingen, daß jede andere übersetungseinheit deine debug-makros verwendet? wäre besser, du könntest einfach nur new mit oder ohne debug-infos versorgen und delete geht dann einfach so.<br />
und es ist unnötig, delete-aufrufe mit der zeilennummer zu versorgen. der aufruf hat doch schon nen zeiger auf den zu löschenden speicher bekommen. da kann er gerne nachsehen, zu welchem new das gehört und vermerken, daß dieses new nicht mehr offen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1289969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1289969</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 22 May 2007 14:20:01 GMT</pubDate></item></channel></rss>