<?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[Zur Kompilierzeit bekanntes C-Array einem constexpr Konstruktor übergeben.]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gerne ein Multidimensionales C-Array einem constexpr Konstruktor übergeben. Dabei handelt es sich um Daten die bekannt sind und sich während der Laufzeit auch nicht ändern sollen.</p>
<pre><code>class TestArray {
public:
	const unsigned int a[][2];
public:
	constexpr TestArray(const unsigned int a[][2]) : a{a} {}
};

class TestArrays {
public:
	static constexpr TestArray test = TestArray({{11,12},{21,22}});
	static constexpr TestArray test2 = TestArray({{11,12},{21,22},{31,32}});
public:
	TestArrays() {}
};

int main() {
	TestArrays::test;
}
</code></pre>
<p>Leider lässt sich mein Beispiel nicht Kompilieren und ich verstehe es nicht warum.</p>
<p>Fehlermeldungen:</p>
<blockquote>
<p>TestArray.cpp:5:54: error: too many initializers for 'const unsigned int [0][2]'<br />
TestArray.cpp:10:63: error: no matching function for call to 'TestArray::TestArray(&lt;brace-enclosed initializer list&gt;)'<br />
TestArray.cpp:11:72: error: no matching function for call to 'TestArray::TestArray(&lt;brace-enclosed initializer list&gt;)'</p>
</blockquote>
<p>Wie kann ich das C-Array richtig initialisieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/337735/zur-kompilierzeit-bekanntes-c-array-einem-constexpr-konstruktor-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 19:43:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337735.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Apr 2016 05:22:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zur Kompilierzeit bekanntes C-Array einem constexpr Konstruktor übergeben. on Mon, 25 Apr 2016 05:22:39 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gerne ein Multidimensionales C-Array einem constexpr Konstruktor übergeben. Dabei handelt es sich um Daten die bekannt sind und sich während der Laufzeit auch nicht ändern sollen.</p>
<pre><code>class TestArray {
public:
	const unsigned int a[][2];
public:
	constexpr TestArray(const unsigned int a[][2]) : a{a} {}
};

class TestArrays {
public:
	static constexpr TestArray test = TestArray({{11,12},{21,22}});
	static constexpr TestArray test2 = TestArray({{11,12},{21,22},{31,32}});
public:
	TestArrays() {}
};

int main() {
	TestArrays::test;
}
</code></pre>
<p>Leider lässt sich mein Beispiel nicht Kompilieren und ich verstehe es nicht warum.</p>
<p>Fehlermeldungen:</p>
<blockquote>
<p>TestArray.cpp:5:54: error: too many initializers for 'const unsigned int [0][2]'<br />
TestArray.cpp:10:63: error: no matching function for call to 'TestArray::TestArray(&lt;brace-enclosed initializer list&gt;)'<br />
TestArray.cpp:11:72: error: no matching function for call to 'TestArray::TestArray(&lt;brace-enclosed initializer list&gt;)'</p>
</blockquote>
<p>Wie kann ich das C-Array richtig initialisieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493984</guid><dc:creator><![CDATA[godi]]></dc:creator><pubDate>Mon, 25 Apr 2016 05:22:39 GMT</pubDate></item><item><title><![CDATA[Reply to Zur Kompilierzeit bekanntes C-Array einem constexpr Konstruktor übergeben. on Mon, 25 Apr 2016 07:47:16 GMT]]></title><description><![CDATA[<p>Gibt es einen Grund für eine eigene Klasse? Sonst kannst du std::array nehmen, etwa:</p>
<pre><code>#include&lt;iostream&gt;
#include&lt;array&gt;
using namespace std;

int main() {
constexpr array&lt;array&lt;int, 3&gt;, 2&gt; arr {{ 
                                {{1, 2, 3}},
                                {{4, 5, 6}} 
                             }};

 cout &lt;&lt; arr[0][1] &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2493995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493995</guid><dc:creator><![CDATA[constexpr]]></dc:creator><pubDate>Mon, 25 Apr 2016 07:47:16 GMT</pubDate></item><item><title><![CDATA[Reply to Zur Kompilierzeit bekanntes C-Array einem constexpr Konstruktor übergeben. on Mon, 25 Apr 2016 08:19:47 GMT]]></title><description><![CDATA[<p>constexpr schrieb:</p>
<blockquote>
<p>Gibt es einen Grund für eine eigene Klasse?</p>
</blockquote>
<p>Ja da hier noch einige Parameter hinzukommen. Mit diesen Parametern möchte ich auch verschiedene Werte beim kompilieren Berechnen lassen und diese mittels constexpr Methoden zur Verfügung stellen.</p>
<p>Aber der Hinweis mit std::array ist vielleicht ganz gut für mein Problem.<br />
Werde ich gleich mal testen.</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493999</guid><dc:creator><![CDATA[godi]]></dc:creator><pubDate>Mon, 25 Apr 2016 08:19:47 GMT</pubDate></item><item><title><![CDATA[Reply to Zur Kompilierzeit bekanntes C-Array einem constexpr Konstruktor übergeben. on Mon, 25 Apr 2016 08:43:40 GMT]]></title><description><![CDATA[<p>Hmm...</p>
<p>Irgendwie komme ich mit std::array auch nicht weiter. Hier endet dies in dem selben Fehler wie oben.</p>
<p>Vielleicht bin ich da auch auf dem falschen Pfad und muss meine Frage anders stellen:</p>
<p>Wie kann ich eine Klasse erstellen die einen constexpr Konstruktor besitzt (um zur Kompilierzeit Werte zu berechnen) bei dem ein Mehrdimensionales Array (vorzugsweise variabler Wert x 2) übergeben werden kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2494001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2494001</guid><dc:creator><![CDATA[godi]]></dc:creator><pubDate>Mon, 25 Apr 2016 08:43:40 GMT</pubDate></item><item><title><![CDATA[Reply to Zur Kompilierzeit bekanntes C-Array einem constexpr Konstruktor übergeben. on Mon, 25 Apr 2016 09:47:31 GMT]]></title><description><![CDATA[<p>Ich habe es jetzt mit einem Template versucht.<br />
Eindimensional funktioniert es. Bei mehrdimensionalem Array funktioniert es leider nicht.</p>
<pre><code>#include&lt;array&gt;
using namespace std;

template&lt;unsigned int dim&gt;
class TestArray {
public:
	const array&lt;array&lt;unsigned int, dim&gt;, 2&gt; a;

public:
	constexpr TestArray(const array&lt;array&lt;unsigned int, dim&gt;, 2&gt; &amp; a ) : a(a) {}
};

int main() {
	constexpr TestArray&lt;1&gt; testArray1({11,12});
	constexpr TestArray&lt;2&gt; testArray2({{11,12},{21,22}}); // error: no matching function for call to 'TestArray&lt;2u&gt;::TestArray(&lt;brace-enclosed initializer list&gt;)'
}
</code></pre>
<p>Kann es sein, dass der Compiler den Aktualparameter für das Array als getrennte Aktualparameter für den Konstruktor nimmt / interpretieren will?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2494007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2494007</guid><dc:creator><![CDATA[godi]]></dc:creator><pubDate>Mon, 25 Apr 2016 09:47:31 GMT</pubDate></item><item><title><![CDATA[Reply to Zur Kompilierzeit bekanntes C-Array einem constexpr Konstruktor übergeben. on Mon, 25 Apr 2016 13:27:41 GMT]]></title><description><![CDATA[<p>Ein array ist ein sog. Aggregat. Du musst ein paar extra Klammern spendieren.</p>
<pre><code>constexpr TestArray&lt;2&gt; testArray2 ({{ {{11,12}},{{21,22}} }});
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2494018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2494018</guid><dc:creator><![CDATA[constexpr]]></dc:creator><pubDate>Mon, 25 Apr 2016 13:27:41 GMT</pubDate></item><item><title><![CDATA[Reply to Zur Kompilierzeit bekanntes C-Array einem constexpr Konstruktor übergeben. on Tue, 26 Apr 2016 08:14:00 GMT]]></title><description><![CDATA[<p>constexpr schrieb:</p>
<blockquote>
<p>Ein array ist ein sog. Aggregat.</p>
</blockquote>
<p>Aja wieder was dazugelernt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Vielen Dank für die Antwort.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2494132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2494132</guid><dc:creator><![CDATA[godi]]></dc:creator><pubDate>Tue, 26 Apr 2016 08:14:00 GMT</pubDate></item></channel></rss>