<?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[Flags zu String]]></title><description><![CDATA[<p>Wie bekomme ich am einfachsten von Flags wie zum Beispiel:</p>
<p>int flags = WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX;</p>
<p>zum einem String &quot;WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX&quot;?</p>
<p>Sowas wollte ich für Logging / Debugging-Zwecke einsetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/333250/flags-zu-string</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 04:05:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/333250.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 21 Jun 2015 16:20:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Flags zu String on Sun, 21 Jun 2015 16:20:41 GMT]]></title><description><![CDATA[<p>Wie bekomme ich am einfachsten von Flags wie zum Beispiel:</p>
<p>int flags = WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX;</p>
<p>zum einem String &quot;WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX&quot;?</p>
<p>Sowas wollte ich für Logging / Debugging-Zwecke einsetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2457374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2457374</guid><dc:creator><![CDATA[bitmask]]></dc:creator><pubDate>Sun, 21 Jun 2015 16:20:41 GMT</pubDate></item><item><title><![CDATA[Reply to Flags zu String on Sun, 21 Jun 2015 16:34:42 GMT]]></title><description><![CDATA[<p>Vielleicht mit einem Macro und #.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2457378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2457378</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Sun, 21 Jun 2015 16:34:42 GMT</pubDate></item><item><title><![CDATA[Reply to Flags zu String on Sun, 21 Jun 2015 16:37:12 GMT]]></title><description><![CDATA[<p>bitmask schrieb:</p>
<blockquote>
<p>Wie bekomme ich <strong>am einfachsten</strong>...</p>
</blockquote>
<p>Hast du dir bereits Gedanken darüber gemacht, wie man es überhaupt lösen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2457380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2457380</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 21 Jun 2015 16:37:12 GMT</pubDate></item><item><title><![CDATA[Reply to Flags zu String on Tue, 23 Jun 2015 20:20:20 GMT]]></title><description><![CDATA[<p>z.B. so:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;windows.h&gt;

#define GENERATE_BITFLAGTOSTRINGENTRY(bitFlag) BitFlagToStringEntry(bitFlag, #bitFlag)

class BitFlagToStringEntry
{
public:
    BitFlagToStringEntry(int bigFlag, const char* pString)
        : bitFlag_(bigFlag)
        , pText_(pString)
    {
    }

    int GetBitFlag() const
    {
        return bitFlag_;
    }

    const char* GetString() const
    {
        return pText_;
    }
private:
    int bitFlag_;
    const char* pText_;
};

template&lt;int ArraySize&gt;
std::string ConvertBitFlagsToString(BitFlagToStringEntry(&amp;bitFlagToStringEntries)[ArraySize], int bitFlags)
{
    std::string result;

    for (int i = 0; i &lt; ArraySize; ++i)
    {
        const BitFlagToStringEntry&amp; bitFlagToStringEntry = bitFlagToStringEntries[i];

        if (bitFlags &amp; bitFlagToStringEntry.GetBitFlag())
        {
            if (!result.empty())
            {
                result += &quot; | &quot;;
            }

            result += bitFlagToStringEntry.GetString();
        }
    }

    return result;
}

int main()
{
    BitFlagToStringEntry bitFlagToStringEntries[] =
    {
        GENERATE_BITFLAGTOSTRINGENTRY(WS_THICKFRAME),
        GENERATE_BITFLAGTOSTRINGENTRY(WS_MINIMIZEBOX),
        GENERATE_BITFLAGTOSTRINGENTRY(WS_MAXIMIZEBOX)
    };

    int bitFlags = WS_THICKFRAME | WS_MAXIMIZEBOX;

    std::cout &lt;&lt; ConvertBitFlagsToString(bitFlagToStringEntries, bitFlags) &lt;&lt; '\n';
    std::cin.get();

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2457579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2457579</guid><dc:creator><![CDATA[trustee-]]></dc:creator><pubDate>Tue, 23 Jun 2015 20:20:20 GMT</pubDate></item><item><title><![CDATA[Reply to Flags zu String on Tue, 23 Jun 2015 21:20:24 GMT]]></title><description><![CDATA[<p>trustee- schrieb:</p>
<blockquote>
<pre><code>template&lt;int ArraySize&gt;
std::string ConvertBitFlagsToString(BitFlagToStringEntry(&amp;bitFlagToStringEntries)[ArraySize], int bitFlags)
</code></pre>
</blockquote>
<p><em>Völlig Off-Topic</em>: Eine Referenz auf ein Array mit vorgegebener Größe! Oh welche Freude so etwas mal wieder zu sehen! <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="😃"
    /> Leider sieht man bei so etwas oft einen <code>irgendwas*</code> -Parameter, das diese nützliche Information, die in dem Array-Typen eingebettet ist,<br />
einfach unter den Tisch fallen lässt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> (zugegeben, macht nicht immer Sinn, aber man darf dort, wo es angebracht ist, ruhig mal ausnutzen, dass manche Arrays auch eine Größe haben) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2457581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2457581</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Tue, 23 Jun 2015 21:20:24 GMT</pubDate></item></channel></rss>