<?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[Forward declarations]]></title><description><![CDATA[<p>Da viele Libraries von Boost Header-only sind sollte ich diese nicht mehr in den Header-Files unseres Projektes includieren (unnötig hohe Compilezeit). Stattdessen verwende ich Forwards declarations:</p>
<pre><code class="language-cpp">#ifndef PARSER_H_
#define PARSER_H_

// Includes
#include &lt;string&gt;

// Forward declarations
struct Info;
template class boost::unordered_map&lt;std::string, CRCInfo&gt;;
template class boost::unordered_map&lt;std::string,
  boost::unordered_map&lt;std::string, std::string&gt; &gt;;

// Functions
extern bool AnalyzeLog(
    const std::string&amp; filename,
    boost::unordered_map&lt;std::string, Info&gt;* indexed_by_filename,
    const boost::unordered_map&lt;std::string, boost::unordered_map&lt;std::string,
        std::string&gt; &gt;&amp; sections);

#endif  // PARSER_H_
</code></pre>
<p>Ist es auch möglich und sinnvoll <strong>&lt;string&gt;</strong> forward zu deklarieren und &quot;alle&quot; Includes in die Source Files zu verschieben?</p>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/topic/296600/forward-declarations</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 20:11:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/296600.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Dec 2011 08:49:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Forward declarations on Thu, 08 Dec 2011 08:52:39 GMT]]></title><description><![CDATA[<p>Da viele Libraries von Boost Header-only sind sollte ich diese nicht mehr in den Header-Files unseres Projektes includieren (unnötig hohe Compilezeit). Stattdessen verwende ich Forwards declarations:</p>
<pre><code class="language-cpp">#ifndef PARSER_H_
#define PARSER_H_

// Includes
#include &lt;string&gt;

// Forward declarations
struct Info;
template class boost::unordered_map&lt;std::string, CRCInfo&gt;;
template class boost::unordered_map&lt;std::string,
  boost::unordered_map&lt;std::string, std::string&gt; &gt;;

// Functions
extern bool AnalyzeLog(
    const std::string&amp; filename,
    boost::unordered_map&lt;std::string, Info&gt;* indexed_by_filename,
    const boost::unordered_map&lt;std::string, boost::unordered_map&lt;std::string,
        std::string&gt; &gt;&amp; sections);

#endif  // PARSER_H_
</code></pre>
<p>Ist es auch möglich und sinnvoll <strong>&lt;string&gt;</strong> forward zu deklarieren und &quot;alle&quot; Includes in die Source Files zu verschieben?</p>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/post/2154525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2154525</guid><dc:creator><![CDATA[Tomahawk]]></dc:creator><pubDate>Thu, 08 Dec 2011 08:52:39 GMT</pubDate></item><item><title><![CDATA[Reply to Forward declarations on Thu, 08 Dec 2011 09:28:47 GMT]]></title><description><![CDATA[<p>Die STL ist mit sehr hoher Wahrscheinlichkeit bereits mit diesem Konzept realisiert. Insofern ist dein Vorhaben nicht sinnvll und außerdem wäre der Aufwand viel zu groß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2154531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2154531</guid><dc:creator><![CDATA[hjkhjk]]></dc:creator><pubDate>Thu, 08 Dec 2011 09:28:47 GMT</pubDate></item><item><title><![CDATA[Reply to Forward declarations on Thu, 08 Dec 2011 09:30:16 GMT]]></title><description><![CDATA[<p>hjkhjk schrieb:</p>
<blockquote>
<p>Die STL ist mit sehr hoher Wahrscheinlichkeit bereits mit diesem Konzept realisiert. Insofern ist dein Vorhaben nicht sinnvll und außerdem wäre der Aufwand viel zu groß.</p>
</blockquote>
<p>OK, aber die geplanten Vorwärtsdeklarationen bei der Verwendung von Boost Libraries (Header-only) sind schon sinnvoll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2154532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2154532</guid><dc:creator><![CDATA[Tomahawk]]></dc:creator><pubDate>Thu, 08 Dec 2011 09:30:16 GMT</pubDate></item><item><title><![CDATA[Reply to Forward declarations on Thu, 08 Dec 2011 19:52:06 GMT]]></title><description><![CDATA[<p>Tomahawk schrieb:</p>
<blockquote>
<p>OK, aber die geplanten Vorwärtsdeklarationen bei der Verwendung von Boost Libraries (Header-only) sind schon sinnvoll?</p>
</blockquote>
<p>Das Problem ist halt, dass Vorwärtsdeklarationen nicht mit typedefs (namespace std{class string;} ist z.B. falsch) u.ä. funktionieren. Eigentlich immer sind Header, die auf fwd enden, besser. In deinem Beispiel wäre das <a href="http://www.boost.org/boost/unordered/unordered_map_fwd.hpp" rel="nofollow">boost/unordered/unordered_map_fwd.hpp</a>.<br />
Es gibt solche auch in der Standardbibliothek, iosfwd ist so ein Beispiel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2154725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2154725</guid><dc:creator><![CDATA[methodikus]]></dc:creator><pubDate>Thu, 08 Dec 2011 19:52:06 GMT</pubDate></item><item><title><![CDATA[Reply to Forward declarations on Fri, 09 Dec 2011 06:14:44 GMT]]></title><description><![CDATA[<p>genau dafür sind doch vorkompilierte header...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2154828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2154828</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 09 Dec 2011 06:14:44 GMT</pubDate></item></channel></rss>