<?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[tr1::array als Datenmember initialisieren]]></title><description><![CDATA[<p>Hi Leute, ich hab hier ein bizarres problem:</p>
<pre><code class="language-cpp">#include &lt;tr1/array&gt;

template &lt;typename T&gt;
class Vector3
{
public:
    Vector3(const T&amp; x, const T&amp; y, const T&amp; z) { data_ = {{x,y,z}}; }
    // operators und blah ...
private:
    std::tr1::array&lt;T, 3&gt; data_;
};
</code></pre>
<p>liefert die Compilerfehlermeldung: error: expected primary-expression before '{' token</p>
<p>wenn ich hingegen schreibe</p>
<pre><code class="language-cpp">Vector3(const T&amp; x, const T&amp; y, const T&amp; z) { std::tr1::array&lt;T,3&gt; temp = {{x,y,z}}; }
</code></pre>
<p>geht's durch.<br />
WTF? Wie soll ich denn den Array-member sonst initialisieren?</p>
<p>Compiler ist gcc 4.2.1 auf OSX 10.6</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288360/tr1-array-als-datenmember-initialisieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 00:43:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288360.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 15 Jun 2011 14:05:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to tr1::array als Datenmember initialisieren on Wed, 15 Jun 2011 14:05:12 GMT]]></title><description><![CDATA[<p>Hi Leute, ich hab hier ein bizarres problem:</p>
<pre><code class="language-cpp">#include &lt;tr1/array&gt;

template &lt;typename T&gt;
class Vector3
{
public:
    Vector3(const T&amp; x, const T&amp; y, const T&amp; z) { data_ = {{x,y,z}}; }
    // operators und blah ...
private:
    std::tr1::array&lt;T, 3&gt; data_;
};
</code></pre>
<p>liefert die Compilerfehlermeldung: error: expected primary-expression before '{' token</p>
<p>wenn ich hingegen schreibe</p>
<pre><code class="language-cpp">Vector3(const T&amp; x, const T&amp; y, const T&amp; z) { std::tr1::array&lt;T,3&gt; temp = {{x,y,z}}; }
</code></pre>
<p>geht's durch.<br />
WTF? Wie soll ich denn den Array-member sonst initialisieren?</p>
<p>Compiler ist gcc 4.2.1 auf OSX 10.6</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2078457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2078457</guid><dc:creator><![CDATA[tr1-Benutzer]]></dc:creator><pubDate>Wed, 15 Jun 2011 14:05:12 GMT</pubDate></item><item><title><![CDATA[Reply to tr1::array als Datenmember initialisieren on Wed, 15 Jun 2011 14:14:53 GMT]]></title><description><![CDATA[<p>tr1-Benutzer schrieb:</p>
<blockquote>
<p>WTF? Wie soll ich denn den Array-member sonst initialisieren?</p>
</blockquote>
<p>Der Unterschied bei den beiden Zeilen ist, dass du bei deinem Versuch, _data zu belegen, <em>nach</em> der initialisierung etwas zuweisen wolltest. Das temp-Array hast du dagegen direkt bei der Initialisierung belegt. Das ist ein riesen Unterschied.</p>
<p>Schau dir mal Boost.Assign an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2078462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2078462</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 15 Jun 2011 14:14:53 GMT</pubDate></item><item><title><![CDATA[Reply to tr1::array als Datenmember initialisieren on Wed, 15 Jun 2011 14:19:08 GMT]]></title><description><![CDATA[<p>Das klingt logisch.<br />
Also müsste ich es in der Element-Initialisierungsliste machen?</p>
<pre><code class="language-cpp">Vector3(const T&amp; x, const T&amp; y, const T&amp; z):data_({{1,2,3}}) {}
</code></pre>
<p>gibt aber den selben Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2078467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2078467</guid><dc:creator><![CDATA[tr1-Benutzer]]></dc:creator><pubDate>Wed, 15 Jun 2011 14:19:08 GMT</pubDate></item><item><title><![CDATA[Reply to tr1::array als Datenmember initialisieren on Wed, 15 Jun 2011 15:38:32 GMT]]></title><description><![CDATA[<p>Nein, das geht leider nur für die Initialisierug á la &quot;Typ obj = {bla}&quot;. Zumindest, bis dein Compiler C++0x-fähig ist.<br />
Wie gesagt, boost.assign benutzen oder eine Funktion die das Array füllt (oder ein gefülltes Array zurückgibt) oder ....<br />
Es gibt viele Wege nach Rom, um ein wenig Schreibarbeit wirst du in C++03 aber nicht rumkommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2078509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2078509</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 15 Jun 2011 15:38:32 GMT</pubDate></item></channel></rss>