<?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[#include in namespace]]></title><description><![CDATA[<p>Hallo Community,</p>
<p>ich möchte gerne curses.h in einem Namespace einbinden, da ich Bezeichner benutzen möchte, die in Curses.h vorkommen.</p>
<p>So</p>
<pre><code class="language-cpp">namespace crs
{
    #include &lt;curses.h&gt;
}
</code></pre>
<p>meldet der Compiler einen haufen von Fehlern (ca. 600), die alle ähnlich wie</p>
<pre><code>'whatever' was not declared in this scope
</code></pre>
<p>sind.</p>
<p>ich habe dieses Vorgehen hier im Forum aber schon gesehen und frage mich, wieso das nicht Funktioniert.<br />
Wenn ich danach noch</p>
<pre><code class="language-cpp">using namespace crs;
</code></pre>
<p>hinzufüge, ist alles Kompilierbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Woran liegt das? Und was kann man dagegen tun?<br />
Ansonsten nehme ich halt andere Bezeichner.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/291955/include-in-namespace</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 08:32:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/291955.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 30 Aug 2011 20:21:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to #include in namespace on Tue, 30 Aug 2011 20:21:18 GMT]]></title><description><![CDATA[<p>Hallo Community,</p>
<p>ich möchte gerne curses.h in einem Namespace einbinden, da ich Bezeichner benutzen möchte, die in Curses.h vorkommen.</p>
<p>So</p>
<pre><code class="language-cpp">namespace crs
{
    #include &lt;curses.h&gt;
}
</code></pre>
<p>meldet der Compiler einen haufen von Fehlern (ca. 600), die alle ähnlich wie</p>
<pre><code>'whatever' was not declared in this scope
</code></pre>
<p>sind.</p>
<p>ich habe dieses Vorgehen hier im Forum aber schon gesehen und frage mich, wieso das nicht Funktioniert.<br />
Wenn ich danach noch</p>
<pre><code class="language-cpp">using namespace crs;
</code></pre>
<p>hinzufüge, ist alles Kompilierbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Woran liegt das? Und was kann man dagegen tun?<br />
Ansonsten nehme ich halt andere Bezeichner.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112663</guid><dc:creator><![CDATA[Hyde++ 0]]></dc:creator><pubDate>Tue, 30 Aug 2011 20:21:18 GMT</pubDate></item><item><title><![CDATA[Reply to #include in namespace on Tue, 30 Aug 2011 20:43:35 GMT]]></title><description><![CDATA[<p>Hm.<br />
Also ich halte nix davon wie du das machen willst.</p>
<p>Aber wieso machst du es nicht umgekehrt - wieso nicht deine eigenen Bezeichner in einen Namespace tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112667</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 30 Aug 2011 20:43:35 GMT</pubDate></item><item><title><![CDATA[Reply to #include in namespace on Tue, 30 Aug 2011 21:00:32 GMT]]></title><description><![CDATA[<p>ja, das ist vllt doch die bessere Lösung.<br />
Ich dachte nur, da gibts eventuell eine andere Methode.<br />
Dankeschön!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112670</guid><dc:creator><![CDATA[Hyde++ 0]]></dc:creator><pubDate>Tue, 30 Aug 2011 21:00:32 GMT</pubDate></item><item><title><![CDATA[Reply to #include in namespace on Tue, 30 Aug 2011 22:13:55 GMT]]></title><description><![CDATA[<p>Im konkreten Fall vermute ich, dass dir jede Menge Makros hochgehen. Ansonsten könnte</p>
<pre><code class="language-cpp">namespace crs {
  extern &quot;C&quot; {
    ...
  }
}
</code></pre>
<p>problematisch sein, da bin ich grad nicht ganz sicher. Aber auch, wenn du das irgendwie kompiliert kriegst, wird es dir spätestens der Linker um die Ohren hauen, weil keine ihm bekannte Bibliothek crs::irgendwas definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112677</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Tue, 30 Aug 2011 22:13:55 GMT</pubDate></item><item><title><![CDATA[Reply to #include in namespace on Wed, 31 Aug 2011 06:35:46 GMT]]></title><description><![CDATA[<p>Hyde++ schrieb:</p>
<blockquote>
<p>ich möchte gerne curses.h in einem Namespace einbinden, da ich Bezeichner benutzen möchte, die in Curses.h vorkommen.</p>
</blockquote>
<p>*zeitung-greif* Böser Programmierer! *mit-der-zeitung-aushol*</p>
<p>Pack einfach <em>Deinen</em> Kram in einen Namensraum!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112760</guid><dc:creator><![CDATA[boah-ey]]></dc:creator><pubDate>Wed, 31 Aug 2011 06:35:46 GMT</pubDate></item><item><title><![CDATA[Reply to #include in namespace on Wed, 31 Aug 2011 07:09:13 GMT]]></title><description><![CDATA[<p>*weg-duck*</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>okok</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112772</guid><dc:creator><![CDATA[Hyde++ 0]]></dc:creator><pubDate>Wed, 31 Aug 2011 07:09:13 GMT</pubDate></item><item><title><![CDATA[Reply to #include in namespace on Wed, 31 Aug 2011 07:27:43 GMT]]></title><description><![CDATA[<p>aber wie ist das denn mit den alten C-Headern?</p>
<p>die wurden doch auch nur in den std namespace geschoben (cmath und so)</p>
<p>und wieso geht das nicht, dass man in einen namespace inkludet?<br />
(unabhängig ob mand as machen soll oder nicht)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112781</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 31 Aug 2011 07:27:43 GMT</pubDate></item><item><title><![CDATA[Reply to #include in namespace on Wed, 31 Aug 2011 08:37:52 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>aber wie ist das denn mit den alten C-Headern?</p>
</blockquote>
<p>Die C++ Header enthalten sicherlich nicht</p>
<pre><code class="language-cpp">namespace std {
#include &lt;stdio.h&gt;
}
</code></pre>
<p>!!!<br />
sondern eher so etwas wie</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
namespace std {
  using ::printf;
  ...
}
</code></pre>
<p>Wie die Hersteller das implementieren ist nicht wirklich wichtig. Hauptsache, all die Namen, die im std-Namensraum zu sein haben, sind auch da. Darauf, dass die Namen gleichzeitig im globalen Namensraum anzutreffen sind, kann man sich nicht verlassen.</p>
<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>und wieso geht das nicht, dass man in einen namespace inkludet?</p>
</blockquote>
<p>Scheinbar verstehst Du nicht ganz, was #include macht. #include ist eine reine Textersetzung. Falls Du die ODR (one definition rule) nicht kennst, schlage auch die in Deinem C++ Buch nach.</p>
<pre><code class="language-cpp">#ifndef HEADER
#define HEADER

void foo();

#endif
</code></pre>
<pre><code class="language-cpp">#include &quot;header.h&quot;  // &lt;-- hier wird ::foo deklariert

void foo() {}        // &lt;-- hier wird ::foo definiert
</code></pre>
<pre><code class="language-cpp">namespace wtf {
#include &quot;header.h&quot;  // &lt;-- hier wird wtf::foo deklariert
}

int main()
{
  wtf::foo();        // &lt;-- hier wird wtf::foo aufgerufen
}
</code></pre>
<p>Aber: Nirgens wird wtf::foo definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112806</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 31 Aug 2011 08:37:52 GMT</pubDate></item><item><title><![CDATA[Reply to #include in namespace on Wed, 31 Aug 2011 08:37:42 GMT]]></title><description><![CDATA[<p>doch, ich weiss sehr wohl, dass include reine textersetzung des preprocessors ist. und ich kenne auch die ODR...</p>
<p>also ists so, dass man quasi per include in den namespace die deklaration in den namespace verschiebt, jedoch nicht die definition?!? die ist ja meistens in schon in den bibliotheks dateien...</p>
<p>aber dann müsste das ja mit templates klappen ?!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112810</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 31 Aug 2011 08:37:42 GMT</pubDate></item></channel></rss>