<?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[&amp;quot;use namespace&amp;quot; in header läst sich nicht vermeiden ?!, help!]]></title><description><![CDATA[<p>hi,<br />
Ich habe mir eben ein neues Project angelegt und auch sofort ne neue klasse hinzugefügt. dann hab ich im header der stdafx.h alle nötigen header eingebunden. ich will in meiner neuen klasse nun aber strings benutzen und andere für den compiler da noch fremde typen, dann ist es doch da richtig die stdafx.h oder halt die benötigten header in den header file der klass einzubinden oder? beim string header ist das aber sone sache, weil ich auch wenn der header eingebunden ist, ich noch keine variablen des types string deklarieren kann, eil ich noch den namespace std brauche, nun hab ich aber gelsen das man using namespace nur in .cpp datein benutzen soll.</p>
<p>Was soll ich jetzt tun?</p>
<p>Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194924/quot-use-namespace-quot-in-header-läst-sich-nicht-vermeiden-help</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 21:59:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194924.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 12 Oct 2007 06:24:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;use namespace&amp;quot; in header läst sich nicht vermeiden ?!, help! on Fri, 12 Oct 2007 06:24:24 GMT]]></title><description><![CDATA[<p>hi,<br />
Ich habe mir eben ein neues Project angelegt und auch sofort ne neue klasse hinzugefügt. dann hab ich im header der stdafx.h alle nötigen header eingebunden. ich will in meiner neuen klasse nun aber strings benutzen und andere für den compiler da noch fremde typen, dann ist es doch da richtig die stdafx.h oder halt die benötigten header in den header file der klass einzubinden oder? beim string header ist das aber sone sache, weil ich auch wenn der header eingebunden ist, ich noch keine variablen des types string deklarieren kann, eil ich noch den namespace std brauche, nun hab ich aber gelsen das man using namespace nur in .cpp datein benutzen soll.</p>
<p>Was soll ich jetzt tun?</p>
<p>Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383355</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Fri, 12 Oct 2007 06:24:24 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;use namespace&amp;quot; in header läst sich nicht vermeiden ?!, help! on Fri, 12 Oct 2007 07:22:40 GMT]]></title><description><![CDATA[<p>Anstatt das using zu verwenden, kannst du auch explizit auf den Namensraum zugreifen, indem du ein &quot;std::&quot; vor den Bezeichner setzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383390</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 12 Oct 2007 07:22:40 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;use namespace&amp;quot; in header läst sich nicht vermeiden ?!, help! on Fri, 12 Oct 2007 07:24:25 GMT]]></title><description><![CDATA[<p>ok, aber es ist trotzdem ok wenn ich dann die stdafx.h in meinen klassen header includiere oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383393</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Fri, 12 Oct 2007 07:24:25 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;use namespace&amp;quot; in header läst sich nicht vermeiden ?!, help! on Fri, 12 Oct 2007 07:32:51 GMT]]></title><description><![CDATA[<p>technisch ja, praktisch ist es besser, überall nur die tatsächlich benötigten Header einzubinden (sprich: Wer mit std::string arbeitet, includet die &lt;string&gt; etc). Die präcompilierten Header sind eher zum Sammeln der WinAPI-Deklarationen nützlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383401</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 12 Oct 2007 07:32:51 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;use namespace&amp;quot; in header läst sich nicht vermeiden ?!, help! on Fri, 12 Oct 2007 08:01:14 GMT]]></title><description><![CDATA[<p>ok also in den klassen header komm nur header rein die ich tatsächlich brauch an sonsten kommt alles in die stdafx, gut danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383436</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Fri, 12 Oct 2007 08:01:14 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;use namespace&amp;quot; in header läst sich nicht vermeiden ?!, help! on Fri, 12 Oct 2007 15:15:51 GMT]]></title><description><![CDATA[<p>MSVC hat einen bösen Bug was precompiled headers angeht.<br />
Wenn man Dateien in unterschiedlichen Verzeichnissen liegen hat:</p>
<pre><code>/foo
/foo/stdafx.h
/foo/foo.h
/foo/main.cpp
/bar
/bar/stdafx.h
/bar/bar.h
</code></pre>
<p>Wenn nun in foo.h und bar.h jeweils einfach ein</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
</code></pre>
<p>steht... dann sollte man ja annehmen dass foo.h auch /foo/stdafx.h inkludiert und bar.h eben /bar/stdafx.h.<br />
Nun angenommen main.cpp enthält</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &quot;foo.h&quot;
#include &lt;bar/bar.h&gt; // include pfad muss entsprechend gesetzt sein damit bar.h gefunden wird
</code></pre>
<p>Wenn man aber MSVC verwendet, und das Projekt so einstellt dass MSVC &quot;stdafx.h&quot; als Precompiled Header verwenden, dann ... passiert nicht was passieren sollte.<br />
Was passieren sollte:</p>
<pre><code>#include &quot;stdafx.h&quot;
  --&gt; /foo/stdafx.h wird inkludiert
#include &quot;foo.h&quot;
  --&gt; /foo/foo.h wird inkludiert
  #include &quot;stdafx.h&quot;
    --&gt; /foo/stdafx.h wird inkludiert
#include &lt;bar/bar.h&gt;
  --&gt; /bar/bar.h wird inkludiert
  #include &quot;stdafx.h&quot;
    --&gt; /bar/stdafx.h wird inkludiert
...
</code></pre>
<p>Was wirklich passiert:</p>
<pre><code>#include &quot;stdafx.h&quot;
  --&gt; MSVC sieht &quot;stdafx.h&quot;, denkt sich &quot;uh, yummy, stdafx.h ist die header vom PCH&quot; -&gt; PCH file laden
#include &quot;foo.h&quot;
  --&gt; /foo/foo.h wird inkludiert
  #include &quot;stdafx.h&quot;
    --&gt; MSVC sieht &quot;stdafx.h&quot;, denkt sich &quot;uh, yummy, stdafx.h ist die header vom PCH&quot; -- PCH file ist aber schon geladen -&gt; MSVC macht einfach nix
#include &lt;bar/bar.h&gt;
  --&gt; /bar/bar.h wird inkludiert
  #include &quot;stdafx.h&quot;
    --&gt; MSVC sieht &quot;stdafx.h&quot;, denkt sich &quot;uh, yummy, stdafx.h ist die header vom PCH&quot; -- PCH file ist aber schon geladen -&gt; MSVC macht einfach nix
...
</code></pre>
<p>Anders gesagt: MSVC ignoriert bei der Entscheidung ob es sich bei einer include Zeile um das &quot;passende include&quot; zum PCH handelt vollkommen den aktuellen include Suchpfad. Egal in welchem File <em>include &quot;stdafx.h&quot;</em> steht, es wird immer das PCH file geladen und NICHT das File welches ohne die Verwendung von PCH geladen würde.</p>
<p>Und das ist einer der Gründe warum man NIEMALS die Header die für's PCH verwendet wird in einer anderen (öffentlichen) Header inkludieren sollte.</p>
<p>Ein anderer guter Grund: die Header für's PCH ist normalerweise &quot;privat&quot;, d.h. die &quot;darf&quot; man garnicht aus &quot;öffentlichen&quot; Headers inkludieren.</p>
<p>p.S.: &quot;stdafx.h&quot; ist natürlich nur ein Platzhalter der für den Namen der &quot;PCH Header&quot; steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383879</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 12 Oct 2007 15:15:51 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;use namespace&amp;quot; in header läst sich nicht vermeiden ?!, help! on Fri, 12 Oct 2007 16:14:47 GMT]]></title><description><![CDATA[<p>Hast Du das in VS2005 verifiziert und einen Bugreport geschrieben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383933</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 12 Oct 2007 16:14:47 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;use namespace&amp;quot; in header läst sich nicht vermeiden ?!, help! on Fri, 12 Oct 2007 16:57:25 GMT]]></title><description><![CDATA[<p>Mit MSVC 2005 noch nicht gecheckt, nö.<br />
Werd ich mal machen.<br />
Und... hast du mal nen Link wo ich Bug Reports schreiben kann? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383961</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 12 Oct 2007 16:57:25 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;use namespace&amp;quot; in header läst sich nicht vermeiden ?!, help! on Sat, 13 Oct 2007 07:55:47 GMT]]></title><description><![CDATA[<p>Der sicherste Weg ist es den Microsoft Support direkt zu kontaktieren.<br />
Wenn Du ein MSDN Abo hast, dann dessen Nutzung der aller einfachste Weg.<br />
Allerdings muss man aktuell in fast allen Fällen erstmal anrufen. Dann wirst Du zurück kontaktiert.<br />
Direkte Links wüsste ich nicht mehr.</p>
<p>Connect dient nur noch VS2008... Bugs zu VS2005 werden dort meistens sofort abgewiesenn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384247</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sat, 13 Oct 2007 07:55:47 GMT</pubDate></item></channel></rss>