<?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[[gelöst] Vector.push_back und unique_ptr und move semantik]]></title><description><![CDATA[<p>Hallo ihr Lieben,</p>
<p>ich versuche gerade folgendes: Ich hänge wieder an der Speicherverwaltung von C der GSL. Bei folgender Klasse habe ich wie immer bei der GSL das Problem, dass sehr viel mit allokiertem Speicher gearbeitet wird, also schiebe ich das in <code>unique_ptr</code> . Leider lässt sich das ganze nicht, kopieren ... aber auch nicht so gedacht, deshalb setze ich auf die <code>move</code> Semantik, d.h. der Move Konstruktor verschiebt den Inhalt der Pointer.</p>
<p>Kurioser Weise hat es nicht gereicht den Kopier Konstruktor als <code>private</code> zu erklären, ich musste dem Move Konstruktor noch ein <code>noexcept</code> verpassen. <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>
<p>Damit funktioniert das Minimalbeispiel weiter unten.</p>
<p>Was mich jetzt im Nachhinein allerdings wundert: Wenn ich ein <code>push_back</code> verwende, dann kann es doch sein, dass Inhalt des Vektors (um)kopiert werden muss, weil mehr zusammenhängender Platz benötigt wird. Wird dann auch automatisch die <code>move</code> Semantik verwendet?</p>
<p>Ich habe nämlich im 'größeren Code' das Problem, dass ich erfolgreich das erste Element in den Vektor geschoeben bekomme, beim zweiten passiert dann allerdings Müll.<br />
Um so seltsamer finde ich es, dass das unten stehende Minimalbeispiel funktioniert, weil dieselbe Klasse <code>matrix.{h,cpp}</code> zugrunde liegt.</p>
<p>Ich würde mich also freuen, wenn ihr mir sagt, dass das Design der Klasse nicht okay ist und was ich noch beachten muss bzw. schief gehen kann.</p>
<pre><code class="language-cpp">#ifndef MATRIX_H_
#define MATRIX_H_
#include &lt;gsl/gsl_eigen.h&gt;
#include &lt;gsl/gsl_matrix.h&gt;
#include &lt;gsl/gsl_math.h&gt;
#include &lt;iostream&gt;
#include &lt;memory&gt;

class matrix
{
	public:
		matrix(int);
		matrix(matrix&amp;&amp;) noexcept;
		void set(int,int,double);
		double operator()(int,int);

	private:
		int _n;
		std::unique_ptr&lt;gsl_matrix,void(*)(gsl_matrix*)&gt; A;

		matrix(const matrix&amp;);
		matrix&amp; operator=(const matrix&amp;);
		matrix&amp; operator=(matrix&amp;&amp;);
};
#endif
</code></pre>
<pre><code class="language-cpp">#include &quot;matrix.h&quot;

matrix::matrix(int n):
_n(n),
A(gsl_matrix_alloc(n,n),gsl_matrix_free)
{}

matrix::matrix(matrix&amp;&amp; rhs) noexcept:
_n( rhs._n ),
A( std::move( rhs.A ) )
{ }

void matrix::set(int n, int m, double x)
{
	gsl_matrix_set(A.get(),n,m,x);
}

double matrix::operator()(int n,int m)
{
	return gsl_matrix_get(A.get(),n,m);
}
</code></pre>
<p>Und das ganze soll in folgendem Minimalbeispiel verwendet werden:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

#include &quot;matrix.h&quot;

int main()
{

	std::vector&lt;matrix&gt; vec;

	matrix A( 2 );

	A.set(0,0,1);
	A.set(0,1,2);
	A.set(1,0,3);
	A.set(1,1,4);

	vec.push_back( std::move( A ) );

	matrix B( 2 );

	B.set(0,0,2);
	B.set(0,1,3);
	B.set(1,0,4);
	B.set(1,1,5);

	vec.push_back( std::move( B ) );

	std::cout &lt;&lt; vec[0](0,0) &lt;&lt; std::endl;

	std::cout &lt;&lt; vec[1](0,0) &lt;&lt; std::endl;

	return 0;
}
</code></pre>
<p>Gruß,<br />
-- Klaus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/324609/gelöst-vector-push_back-und-unique_ptr-und-move-semantik</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 08:20:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/324609.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Mar 2014 13:38:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [gelöst] Vector.push_back und unique_ptr und move semantik on Wed, 26 Mar 2014 11:15:28 GMT]]></title><description><![CDATA[<p>Hallo ihr Lieben,</p>
<p>ich versuche gerade folgendes: Ich hänge wieder an der Speicherverwaltung von C der GSL. Bei folgender Klasse habe ich wie immer bei der GSL das Problem, dass sehr viel mit allokiertem Speicher gearbeitet wird, also schiebe ich das in <code>unique_ptr</code> . Leider lässt sich das ganze nicht, kopieren ... aber auch nicht so gedacht, deshalb setze ich auf die <code>move</code> Semantik, d.h. der Move Konstruktor verschiebt den Inhalt der Pointer.</p>
<p>Kurioser Weise hat es nicht gereicht den Kopier Konstruktor als <code>private</code> zu erklären, ich musste dem Move Konstruktor noch ein <code>noexcept</code> verpassen. <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>
<p>Damit funktioniert das Minimalbeispiel weiter unten.</p>
<p>Was mich jetzt im Nachhinein allerdings wundert: Wenn ich ein <code>push_back</code> verwende, dann kann es doch sein, dass Inhalt des Vektors (um)kopiert werden muss, weil mehr zusammenhängender Platz benötigt wird. Wird dann auch automatisch die <code>move</code> Semantik verwendet?</p>
<p>Ich habe nämlich im 'größeren Code' das Problem, dass ich erfolgreich das erste Element in den Vektor geschoeben bekomme, beim zweiten passiert dann allerdings Müll.<br />
Um so seltsamer finde ich es, dass das unten stehende Minimalbeispiel funktioniert, weil dieselbe Klasse <code>matrix.{h,cpp}</code> zugrunde liegt.</p>
<p>Ich würde mich also freuen, wenn ihr mir sagt, dass das Design der Klasse nicht okay ist und was ich noch beachten muss bzw. schief gehen kann.</p>
<pre><code class="language-cpp">#ifndef MATRIX_H_
#define MATRIX_H_
#include &lt;gsl/gsl_eigen.h&gt;
#include &lt;gsl/gsl_matrix.h&gt;
#include &lt;gsl/gsl_math.h&gt;
#include &lt;iostream&gt;
#include &lt;memory&gt;

class matrix
{
	public:
		matrix(int);
		matrix(matrix&amp;&amp;) noexcept;
		void set(int,int,double);
		double operator()(int,int);

	private:
		int _n;
		std::unique_ptr&lt;gsl_matrix,void(*)(gsl_matrix*)&gt; A;

		matrix(const matrix&amp;);
		matrix&amp; operator=(const matrix&amp;);
		matrix&amp; operator=(matrix&amp;&amp;);
};
#endif
</code></pre>
<pre><code class="language-cpp">#include &quot;matrix.h&quot;

matrix::matrix(int n):
_n(n),
A(gsl_matrix_alloc(n,n),gsl_matrix_free)
{}

matrix::matrix(matrix&amp;&amp; rhs) noexcept:
_n( rhs._n ),
A( std::move( rhs.A ) )
{ }

void matrix::set(int n, int m, double x)
{
	gsl_matrix_set(A.get(),n,m,x);
}

double matrix::operator()(int n,int m)
{
	return gsl_matrix_get(A.get(),n,m);
}
</code></pre>
<p>Und das ganze soll in folgendem Minimalbeispiel verwendet werden:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

#include &quot;matrix.h&quot;

int main()
{

	std::vector&lt;matrix&gt; vec;

	matrix A( 2 );

	A.set(0,0,1);
	A.set(0,1,2);
	A.set(1,0,3);
	A.set(1,1,4);

	vec.push_back( std::move( A ) );

	matrix B( 2 );

	B.set(0,0,2);
	B.set(0,1,3);
	B.set(1,0,4);
	B.set(1,1,5);

	vec.push_back( std::move( B ) );

	std::cout &lt;&lt; vec[0](0,0) &lt;&lt; std::endl;

	std::cout &lt;&lt; vec[1](0,0) &lt;&lt; std::endl;

	return 0;
}
</code></pre>
<p>Gruß,<br />
-- Klaus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390779</guid><dc:creator><![CDATA[Klaus82]]></dc:creator><pubDate>Wed, 26 Mar 2014 11:15:28 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Vector.push_back und unique_ptr und move semantik on Mon, 24 Mar 2014 13:49:21 GMT]]></title><description><![CDATA[<p>Klaus82 schrieb:</p>
<blockquote>
<p>Wenn ich ein <code>push_back</code> verwende, dann kann es doch sein, dass Inhalt des Vektors (um)kopiert werden muss, weil mehr zusammenhängender Platz benötigt wird. Wird dann auch automatisch die <code>move</code> Semantik verwendet?</p>
</blockquote>
<p>Kurze Antwort: Nein, denn push_back hat die starke Exception-Garantie. Heißt, wenn ein Move fehlschlägt, dann darf sich der vector nicht verändert haben, hat er aber. Deshalb kann vector nur dann move verwenden, wenn es noexcept ist.</p>
<p>Lange Antwort: <a href="http://channel9.msdn.com/Events/GoingNative/2013/An-Effective-Cpp11-14-Sampler" rel="nofollow">Spring auf Minute 32</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390781</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Mon, 24 Mar 2014 13:49:21 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Vector.push_back und unique_ptr und move semantik on Mon, 24 Mar 2014 14:21:17 GMT]]></title><description><![CDATA[<p>Klaus82 schrieb:</p>
<blockquote>
<p>Wenn ich ein <code>push_back</code> verwende, dann kann es doch sein, dass Inhalt des Vektors (um)kopiert werden muss, weil mehr zusammenhängender Platz benötigt wird. Wird dann auch automatisch die <code>move</code> Semantik verwendet?</p>
</blockquote>
<p>Das kommt auf den Typ an. Falls Dein T einen noexcept Move-Ctor hat, dann ja. Wenn nicht, dann nicht. Dazu gibt es das Utensil <code>std::move_if_noexcept</code> . In jedem Fall kann vector&lt;&gt; beim Vergrößern die starke Ausnahmesicherheit geben. Im Fall &quot;nothrow-movable&quot; kann ja nichts schiefgehen. Und sonst fällt der Vektor auf das Kopieren zurück.</p>
<p><code>noexcept</code> bei Move bringt also richtig was.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390791</guid><dc:creator><![CDATA[kkaw]]></dc:creator><pubDate>Mon, 24 Mar 2014 14:21:17 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Vector.push_back und unique_ptr und move semantik on Mon, 24 Mar 2014 14:39:41 GMT]]></title><description><![CDATA[<p>Wenn der Typ nicht kopierbar, aber move-bar ist, fällt vector allerdings auf move zurück, selbst wenn es nicht noexcept ist:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;vector&gt;

class test
{
public:
	test() = default;
	test(test const&amp;) = delete;
	test&amp; operator =(test const&amp;) = delete;

	test(test&amp;&amp;)
	{
		std::cout &lt;&lt; &quot;move-ctor\n&quot;;
	}
	test&amp; operator =(test&amp;&amp;)
	{
		std::cout &lt;&lt; &quot;move-assign\n&quot;;
		return *this;
	}
};

int main()
{
	std::vector&lt;test&gt; vec;
	vec.reserve(2);

	vec.push_back(test());
	std::cout &lt;&lt; &quot;1\n&quot;;
	vec.push_back(test());
	std::cout &lt;&lt; &quot;2\n&quot;;
	vec.push_back(test());

	std::cin.get();
}
</code></pre>
<p>Output:</p>
<blockquote>
<p>move-ctor<br />
1<br />
move-ctor<br />
2<br />
move-ctor<br />
move-ctor<br />
move-ctor</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2390798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390798</guid><dc:creator><![CDATA[Flashput]]></dc:creator><pubDate>Mon, 24 Mar 2014 14:39:41 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Vector.push_back und unique_ptr und move semantik on Mon, 24 Mar 2014 20:07:47 GMT]]></title><description><![CDATA[<p>Mh,</p>
<p>erscheint alles sinnvoll.</p>
<p>Was mich einfach wundert:</p>
<p>In meinem 'größeren Code' schiebe ich die erste Matrix in den Vektor.</p>
<p>Alle Werte sind okay.</p>
<p>Ich schiebe die zweite Matrix (mit anderen Werten) in den Vektor.</p>
<p>Die Werte des ersten Vektors sind okay, jene des zweiten sind Müll.</p>
<p>Idee: Bei der zweiten Matrix wurde etwas fehlerhaft berechnet.</p>
<p>Test: Ich kommentiere die erste Matrix aus und schiebe nur die zweite Matrix in den Vektor.</p>
<p>Resultat: Die Werte der zweiten Matrix (jetzt als erstes und einziges Elment im Vektor) erscheinen alle sinnvoll. <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>
<p>Überlegung: Das Hineinschieben der zweiten Matrix nach der ersten funktioniert nicht?</p>
<p>Gruß,<br />
-- Klaus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390871</guid><dc:creator><![CDATA[Klaus82]]></dc:creator><pubDate>Mon, 24 Mar 2014 20:07:47 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Vector.push_back und unique_ptr und move semantik on Mon, 24 Mar 2014 21:07:37 GMT]]></title><description><![CDATA[<p>Dein Copy/Move-Konstruktor ist falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390887</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Mon, 24 Mar 2014 21:07:37 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Vector.push_back und unique_ptr und move semantik on Tue, 25 Mar 2014 09:14:14 GMT]]></title><description><![CDATA[<p>nwp3 schrieb:</p>
<blockquote>
<p>Dein Copy/Move-Konstruktor ist falsch.</p>
</blockquote>
<p>Okay.</p>
<p>Ich habe mir das Video von Scott Meyers angesehen und wieder versucht so viel wie möglich zu verstehen.</p>
<p>In seinem Vortrag kam im Zusammenhang mit den Konstruktoren auch der <code>unique_ptr</code> vor. Wenn ich das richtig verstehe, dann führt das Vorhandensein eines <code>unique_ptr</code> als Klassenvariable dazu, dass kopieren nicht mehr möglich ist, d.h. ich setze den Kopierkonstruktor <code>private</code> (old style) oder versehe ihn mit <code>= delete</code> (new style).</p>
<p>Ich muss also zum Move Konstruktor übergehen.</p>
<p>Das Problem ist jetzt allerdings die Verwendung wie z.B. ein <code>vector</code> mit seinem <code>push_back</code> .</p>
<p>Ich habe den Eindruck, dass Scott Meyer an einer Stelle sinngemäß gesagt hat, dass <code>std::move</code> etwas mit der <em>strong exception guarantee</em> zu tun hat und falls die nicht gegeben ist, dann fällt der Kompiler zurück auf kopieren anstatt 'moven'.</p>
<p>Ich muss bei meiner vorliegenden Klasse also dafür sorgen, dass stets 'gemoved' wird, oder? Also insbesondere ein Auge darauf haben, was im aktuellen Beispiel <code>std::vector</code> intern mit den Elementen macht, z.B. bei <code>push_back</code> oder wenn er Speicher reallokieren muss?</p>
<p>Edit:<br />
Ich nehme an, dass es <a href="http://stackoverflow.com/questions/6011428/move-constructors-and-the-strong-exception-guarantee" rel="nofollow">darum</a> geht:</p>
<blockquote>
<p>but the general idea is that if the move constructor can throw, the vector will have to copy the elements instead.</p>
</blockquote>
<p>Muss ich meinen Move Constructor dann zusammen mit <code>emplace_back()</code> verwenden?</p>
<p>Gruß,<br />
-- Klaus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390965</guid><dc:creator><![CDATA[Klaus82]]></dc:creator><pubDate>Tue, 25 Mar 2014 09:14:14 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Vector.push_back und unique_ptr und move semantik on Tue, 25 Mar 2014 10:06:15 GMT]]></title><description><![CDATA[<p>Klaus82 schrieb:</p>
<blockquote>
<p>In meinem 'größeren Code' schiebe ich die erste Matrix in den Vektor.</p>
<p>Alle Werte sind okay.</p>
<p>Ich schiebe die zweite Matrix (mit anderen Werten) in den Vektor.</p>
<p>Die Werte des ersten Vektors sind okay, jene des zweiten sind Müll.</p>
<p>Idee: Bei der zweiten Matrix wurde etwas fehlerhaft berechnet.</p>
<p>Test: Ich kommentiere die erste Matrix aus und schiebe nur die zweite Matrix in den Vektor.</p>
<p>Resultat: Die Werte der zweiten Matrix (jetzt als erstes und einziges Elment im Vektor) erscheinen alle sinnvoll. <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>
</blockquote>
<p>Daraus habe ich geschlossen, dass dein move-Konstruktor etwas falsches tut. Mit falsch meine ich er baut die Matrix nicht korrekt zusammen oder die alte Matrix löscht was was die neue Matrix noch braucht.</p>
<p>Klaus82 schrieb:</p>
<blockquote>
<p>Ich muss bei meiner vorliegenden Klasse also dafür sorgen, dass stets 'gemoved' wird, oder?</p>
</blockquote>
<p>Ich dachte das tust du schon. Wenn du kein Copy-Konstruktor hast kann vector nicht kopieren und entweder er benutzt den Move-Konstruktor, oder push_back kompiliert nicht. Da es kompiliert muss er move benutzen.</p>
<p>Ich würde darauf tippen, dass du vergessen hast den unique_ptr zu moven oder einen Pointer nicht auf nullptr gesetzt hast, weshalb die alte Matrix dir die Daten löscht. Kannst du die Matrixklasse mit dem Move-Konstruktor zeigen?<br />
Btw: Nur weil die Matrix einen unique_ptr hat heißt das nicht dass man sie nicht kopieren kann. Du kannst den unique_ptr zwar nicht kopieren, aber du kannst die Daten, auf die der unique_ptr zeigt kopieren.</p>
<p>Vielleicht hilft ein Test:</p>
<pre><code>Matrix m = {1, 2, 3, 4};
Matrix m2 = {1, 2, 3, 4};
Matrix m3 = move(m); //nach dieser Zeile auf m zugreifen ist schlecht
assert(m2 == m3);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2390980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390980</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Tue, 25 Mar 2014 10:06:15 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Vector.push_back und unique_ptr und move semantik on Tue, 25 Mar 2014 10:21:46 GMT]]></title><description><![CDATA[<p>nwp3 schrieb:</p>
<blockquote>
<p>Kannst du die Matrixklasse mit dem Move-Konstruktor zeigen?</p>
</blockquote>
<p>Steht in meinem <a href="http://www.c-plusplus.net/forum/p2390779#2390779" rel="nofollow">Startpost</a>. <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>Gruß,<br />
-- Klaus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390987</guid><dc:creator><![CDATA[Klaus82]]></dc:creator><pubDate>Tue, 25 Mar 2014 10:21:46 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Vector.push_back und unique_ptr und move semantik on Tue, 25 Mar 2014 10:52:18 GMT]]></title><description><![CDATA[<p>Ups, hatte irgendwie den ersten Post verdrängt, zu viel Code. Ich sehe keinen Fehler. Mein nächster Versuch wäre statt die Werte zu vergleichen den Wert des unique_ptrs und _n zu vergleichen.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;vector&gt;

#include &quot;matrix.h&quot;

int main(){ 
    std::vector&lt;matrix&gt; vec;

    matrix A(2);
    A.set(0,0,1);
    A.set(0,1,2);
    A.set(1,0,3);
    A.set(1,1,4);
    std::cout &lt;&lt; A(0,0) &lt;&lt; '\n';

    vec.push_back(std::move(A));

    matrix B(2);
    B.set(0,0,2);
    B.set(0,1,3);
    B.set(1,0,4);
    B.set(1,1,5);
    std::cout &lt;&lt; B.A.get() &lt;&lt; B(0,0) &lt;&lt; '\n'; //matrix::A public machen

    matrix C(std::move(B));
    std::cout &lt;&lt; C.A.get() &lt;&lt; C(0,0) &lt;&lt; '\n';

    vec.push_back(std::move(C));

    std::cout &lt;&lt; vec[0](0,0) &lt;&lt; '\n';
    std::cout &lt;&lt; vec[1](0,0) &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2390995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390995</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Tue, 25 Mar 2014 10:52:18 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Vector.push_back und unique_ptr und move semantik on Wed, 26 Mar 2014 11:16:09 GMT]]></title><description><![CDATA[<p>So,</p>
<p>das Problem befand sich wieder 'vor' der Tastatur. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Ich war zu dumm die Matrix sinnvoll zu füllen, sodass natürlich Müll bei manchen Einträgen herauskam.</p>
<p>War echt etwas verwundert, da ich mir bei <code>std::move</code> doch Mühe gegeben hatte. <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>Aber es war nochmal gut den Vortrag von Scott zu sehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>Gruß,<br />
-- Klaus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2391218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2391218</guid><dc:creator><![CDATA[Klaus82]]></dc:creator><pubDate>Wed, 26 Mar 2014 11:16:09 GMT</pubDate></item></channel></rss>