<?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[Zugriff auf static const struct Member eines struct Members ohne Instanz]]></title><description><![CDATA[<p>Hi,</p>
<p>ich denk der Titel ist ein wenig verwirrend. Also gleich mal das Beispiel:</p>
<pre><code>template&lt;typename SizeType, SizeType min, SizeType max&gt;
		struct Opaque {		
			typedef SizeType size_t;
			static const size_t MIN = min;
			static const size_t MAX = max;

			std::vector&lt;std::uint8_t&gt; data;
		};

		template&lt;std::uint8_t exp&gt;
		struct power_two {
			static const std::size_t value = 1 &lt;&lt; exp;
		};

		struct TLSPlaintext {			

			ContentType contentType;
			ProtocolVersion version;
			Opaque&lt;std::uint16_t, 0, power_two&lt;14&gt;::value&gt; data;

		};
</code></pre>
<p>Ich hab jetzt diese beiden structs 'TLSPlaintext' und 'Opaque'.<br />
Nun moechte ich von TLSPlaintext auf data::MAX zugreifen ohne das ich eine Instanz davon erstelle.</p>
<pre><code>std::cout &lt;&lt; TLSPlaintext::data::MAX &lt;&lt; &quot;\n&quot;; // So moechte ich drauf zugreifen, geht nicht

std::cout &lt;&lt; TLSPlaintext().data.MAX &lt;&lt; &quot;\n&quot;; // So gehts...
</code></pre>
<p>Gibt es da ueberhaupt eine Moeglichkeit?</p>
<p>Gruessle</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/328146/zugriff-auf-static-const-struct-member-eines-struct-members-ohne-instanz</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 15:04:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/328146.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 25 Sep 2014 09:54:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zugriff auf static const struct Member eines struct Members ohne Instanz on Thu, 25 Sep 2014 09:54:32 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich denk der Titel ist ein wenig verwirrend. Also gleich mal das Beispiel:</p>
<pre><code>template&lt;typename SizeType, SizeType min, SizeType max&gt;
		struct Opaque {		
			typedef SizeType size_t;
			static const size_t MIN = min;
			static const size_t MAX = max;

			std::vector&lt;std::uint8_t&gt; data;
		};

		template&lt;std::uint8_t exp&gt;
		struct power_two {
			static const std::size_t value = 1 &lt;&lt; exp;
		};

		struct TLSPlaintext {			

			ContentType contentType;
			ProtocolVersion version;
			Opaque&lt;std::uint16_t, 0, power_two&lt;14&gt;::value&gt; data;

		};
</code></pre>
<p>Ich hab jetzt diese beiden structs 'TLSPlaintext' und 'Opaque'.<br />
Nun moechte ich von TLSPlaintext auf data::MAX zugreifen ohne das ich eine Instanz davon erstelle.</p>
<pre><code>std::cout &lt;&lt; TLSPlaintext::data::MAX &lt;&lt; &quot;\n&quot;; // So moechte ich drauf zugreifen, geht nicht

std::cout &lt;&lt; TLSPlaintext().data.MAX &lt;&lt; &quot;\n&quot;; // So gehts...
</code></pre>
<p>Gibt es da ueberhaupt eine Moeglichkeit?</p>
<p>Gruessle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2419117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2419117</guid><dc:creator><![CDATA[stuxn]]></dc:creator><pubDate>Thu, 25 Sep 2014 09:54:32 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf static const struct Member eines struct Members ohne Instanz on Thu, 25 Sep 2014 10:05:04 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">decltype(TLSPlaintext::data)::MAX
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2419119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2419119</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 25 Sep 2014 10:05:04 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf static const struct Member eines struct Members ohne Instanz on Thu, 25 Sep 2014 10:06:01 GMT]]></title><description><![CDATA[<p>ungetstet:</p>
<pre><code class="language-cpp">struct TLSPlaintext {          

            ContentType contentType;
            ProtocolVersion version;
            typedef Opaque&lt;std::uint16_t, 0, power_two&lt;14&gt;::value&gt; OT;
            OT data;

        };
std::cout &lt;&lt; TLSPlaintext::OT::MAX &lt;&lt; &quot;\n&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2419120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2419120</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 25 Sep 2014 10:06:01 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf static const struct Member eines struct Members ohne Instanz on Thu, 25 Sep 2014 10:16:55 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<pre><code class="language-cpp">decltype(TLSPlaintext::data)::MAX
</code></pre>
</blockquote>
<p>Omfg das hatte ich auch schon. Leider hat mir Visual Studio 2013 das 'decltype' rot unterringeld und gesagt: &quot;Error: type name is not allowed&quot;. Dadurch hab ich garnicht probiert ob sich das ueberhaupt bauen laesst und habs wieder verworfen. Aber es funktioniert wunderbar:</p>
<pre><code>std::cout &lt;&lt; sizeof(decltype(tunnel::tls::TLSPlaintext::data)::size_t) &lt;&lt; &quot;\n&quot;;
	std::cout &lt;&lt; decltype(tunnel::tls::TLSPlaintext::data)::MIN &lt;&lt; &quot;\n&quot;;
	std::cout &lt;&lt; decltype(tunnel::tls::TLSPlaintext::data)::MAX &lt;&lt; &quot;\n&quot;;

/*
   2
   0
   16384
*/
</code></pre>
<p>Leider sagt mir VS bei jedem decltype &amp; ::[..] das das falsch ist....<br />
Aber Danke vielmals.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2419123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2419123</guid><dc:creator><![CDATA[stuxn]]></dc:creator><pubDate>Thu, 25 Sep 2014 10:16:55 GMT</pubDate></item></channel></rss>