<?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[Namespaces in Source und Header]]></title><description><![CDATA[<p>Habe verschiedene Implementierungen von namespaces gesehen. Ich ziehe folgenden Aufbau vor:</p>
<pre><code class="language-cpp">// a.h
namespace a {
extern int n_public;
extern void f_public();
}  // namespace a

// a.cc
namespace {
int n_local;
void f_local();
}  // anonymous namespace

namespace a {
int n_public;
void f_public() {
}
}  // namespace a

namespace {
void f_local() {
}
}  // anonymous namespace
</code></pre>
<p>Da die anonyme namespace das static von C in diesem Zusammenhang ersetzt, vermute ich dass obige Implementierung korrekt sein sollte. In anderen Implementierungen sind n_local und f_local() im cc-file in die namespace a gepackt, was ich nicht verstehe?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/283404/namespaces-in-source-und-header</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 15:20:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/283404.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Mar 2011 09:29:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Namespaces in Source und Header on Fri, 11 Mar 2011 09:29:59 GMT]]></title><description><![CDATA[<p>Habe verschiedene Implementierungen von namespaces gesehen. Ich ziehe folgenden Aufbau vor:</p>
<pre><code class="language-cpp">// a.h
namespace a {
extern int n_public;
extern void f_public();
}  // namespace a

// a.cc
namespace {
int n_local;
void f_local();
}  // anonymous namespace

namespace a {
int n_public;
void f_public() {
}
}  // namespace a

namespace {
void f_local() {
}
}  // anonymous namespace
</code></pre>
<p>Da die anonyme namespace das static von C in diesem Zusammenhang ersetzt, vermute ich dass obige Implementierung korrekt sein sollte. In anderen Implementierungen sind n_local und f_local() im cc-file in die namespace a gepackt, was ich nicht verstehe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2032618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2032618</guid><dc:creator><![CDATA[Tomahawk]]></dc:creator><pubDate>Fri, 11 Mar 2011 09:29:59 GMT</pubDate></item><item><title><![CDATA[Reply to Namespaces in Source und Header on Fri, 11 Mar 2011 10:27:05 GMT]]></title><description><![CDATA[<p>Tomahawk schrieb:</p>
<blockquote>
<p>Da die anonyme namespace das static von C in diesem Zusammenhang ersetzt,</p>
</blockquote>
<p>Naja, es macht schon etwas anderes. Aber der Einsatzzweck ist derselbe.</p>
<p>Tomahawk schrieb:</p>
<blockquote>
<p>vermute ich dass obige Implementierung korrekt sein sollte.</p>
</blockquote>
<p>Korrekt in sofern, dass es wahrscheinlich das macht, was Du willst, ja.</p>
<p>Tomahawk schrieb:</p>
<blockquote>
<p>In anderen Implementierungen sind n_local und f_local() im cc-file in die namespace a gepackt, was ich nicht verstehe?</p>
</blockquote>
<p>Was genau verstehst Du nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2032653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2032653</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 11 Mar 2011 10:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to Namespaces in Source und Header on Fri, 11 Mar 2011 10:37:51 GMT]]></title><description><![CDATA[<p>Was ist denn ein anonymes namespace?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2032664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2032664</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Fri, 11 Mar 2011 10:37:51 GMT</pubDate></item><item><title><![CDATA[Reply to Namespaces in Source und Header on Fri, 11 Mar 2011 10:49:44 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Was ist denn ein anonymes namespace?</p>
</blockquote>
<p>Ein Namespace der keinen Namen hat. Dieser kann dann z. B. globale Variablen Fassen die in anderen Übersetzungseinheiten nicht verwendet werden können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2032670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2032670</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Fri, 11 Mar 2011 10:49:44 GMT</pubDate></item><item><title><![CDATA[Reply to Namespaces in Source und Header on Fri, 11 Mar 2011 13:05:24 GMT]]></title><description><![CDATA[<p>HighLigerBiMBam schrieb:</p>
<blockquote>
<p>[...] die in anderen Übersetzungseinheiten nicht verwendet werden können.</p>
</blockquote>
<p>...zumindest nicht über ihren Namen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2032726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2032726</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 11 Mar 2011 13:05:24 GMT</pubDate></item><item><title><![CDATA[Reply to Namespaces in Source und Header on Fri, 11 Mar 2011 13:17:23 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>HighLigerBiMBam schrieb:</p>
<blockquote>
<p>[...] die in anderen Übersetzungseinheiten nicht verwendet werden können.</p>
</blockquote>
<p>...zumindest nicht über ihren Namen.</p>
</blockquote>
<p>Klar kann man das mit einer Funktion umgehen, aber das gilt für so einiges in C++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2032737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2032737</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Fri, 11 Mar 2011 13:17:23 GMT</pubDate></item></channel></rss>