<?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[Macro kollidiert mit STL]]></title><description><![CDATA[<p>Hallo, ich habe versucht folgenden Code unter Visual C++ zu kompilieren:</p>
<pre><code class="language-cpp">#include &lt;limits&gt;
#include &lt;cstdlib&gt;
#include &lt;windows.h&gt;

int main()
{
	if( std::numeric_limits&lt;unsigned long&gt;::max() == RAND_MAX )
		;
}
</code></pre>
<p>Als Fehler erhalte ich:</p>
<pre><code>(7) : warning C4003: Nicht genügend übergebene Parameter für das Makro 'max'
(7) : error C2589: '(': Ungültiges Token auf der rechten Seite von '::'
(7) : error C2059: Syntaxfehler: '::'
</code></pre>
<p>Der Fehler tritt nur auf, wenn windows.h inkludiert wird, da sich in windows.h (genauer windef.h, die von windows.h inkludiert wird) ein macro namens max befindet.</p>
<pre><code class="language-cpp">#ifndef max
#define max(a,b)            (((a) &gt; (b)) ? (a) : (b))
#endif
</code></pre>
<p>Kann ich irgendwie die static funktion max aus &lt;limits&gt; benutzen und TROTZDEM windows.h in meinem Projekt verwenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/269182/macro-kollidiert-mit-stl</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 08:55:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/269182.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 20 Jun 2010 14:20:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Macro kollidiert mit STL on Sun, 20 Jun 2010 14:20:49 GMT]]></title><description><![CDATA[<p>Hallo, ich habe versucht folgenden Code unter Visual C++ zu kompilieren:</p>
<pre><code class="language-cpp">#include &lt;limits&gt;
#include &lt;cstdlib&gt;
#include &lt;windows.h&gt;

int main()
{
	if( std::numeric_limits&lt;unsigned long&gt;::max() == RAND_MAX )
		;
}
</code></pre>
<p>Als Fehler erhalte ich:</p>
<pre><code>(7) : warning C4003: Nicht genügend übergebene Parameter für das Makro 'max'
(7) : error C2589: '(': Ungültiges Token auf der rechten Seite von '::'
(7) : error C2059: Syntaxfehler: '::'
</code></pre>
<p>Der Fehler tritt nur auf, wenn windows.h inkludiert wird, da sich in windows.h (genauer windef.h, die von windows.h inkludiert wird) ein macro namens max befindet.</p>
<pre><code class="language-cpp">#ifndef max
#define max(a,b)            (((a) &gt; (b)) ? (a) : (b))
#endif
</code></pre>
<p>Kann ich irgendwie die static funktion max aus &lt;limits&gt; benutzen und TROTZDEM windows.h in meinem Projekt verwenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915115</guid><dc:creator><![CDATA[Windoof _(]]></dc:creator><pubDate>Sun, 20 Jun 2010 14:20:49 GMT</pubDate></item><item><title><![CDATA[Reply to Macro kollidiert mit STL on Sun, 20 Jun 2010 14:27:15 GMT]]></title><description><![CDATA[<p>#undef max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915117</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Sun, 20 Jun 2010 14:27:15 GMT</pubDate></item><item><title><![CDATA[Reply to Macro kollidiert mit STL on Sun, 20 Jun 2010 14:28:46 GMT]]></title><description><![CDATA[<p>NOMINMAX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915119</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sun, 20 Jun 2010 14:28:46 GMT</pubDate></item><item><title><![CDATA[Reply to Macro kollidiert mit STL on Sun, 20 Jun 2010 14:37:39 GMT]]></title><description><![CDATA[<p>Vielen Danke! Funktioniert!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915123</guid><dc:creator><![CDATA[Windoof _(]]></dc:creator><pubDate>Sun, 20 Jun 2010 14:37:39 GMT</pubDate></item></channel></rss>