<?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[unique_ptr und kleines problemchen]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgender Code:</p>
<pre><code>typedef std::unique_ptr&lt;std::error_code&gt; error_code_ptr;

class Filesystem
{
	public:
		Filesystem();
		~Filesystem();

		void copyFile(const std::string &amp;source, const std::string &amp;dest, bool overwrite);

	private:
		error_code_ptr ec_;
	};
}

void Filesystem::copyFile(const std::string &amp;source, const std::string &amp;dest, bool overwrite)
{
	overwrite = !overwrite;
	auto ret = CopyFileA(source.c_str(), dest.c_str(), overwrite);

	if (ret == 0)
	{
		ec_-&gt;assign(GetLastError(), file_category());
	}
}
</code></pre>
<p>Wenn beim kopieren ein Fehler auftritt und dem <em>error_code_ptr</em> mit der Methode <em>assign</em> der Fehlercode zugewiesen werden soll stürzt das Programm einfach ab.</p>
<p>Kann mir da jmd. weiterhelfen? Ich muss auch gestehen, dass ich bei den Smartpointern noch nicht wirklich durchblicke.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/320019/unique_ptr-und-kleines-problemchen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 14:51:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/320019.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Sep 2013 14:42:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to unique_ptr und kleines problemchen on Thu, 12 Sep 2013 14:42:32 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgender Code:</p>
<pre><code>typedef std::unique_ptr&lt;std::error_code&gt; error_code_ptr;

class Filesystem
{
	public:
		Filesystem();
		~Filesystem();

		void copyFile(const std::string &amp;source, const std::string &amp;dest, bool overwrite);

	private:
		error_code_ptr ec_;
	};
}

void Filesystem::copyFile(const std::string &amp;source, const std::string &amp;dest, bool overwrite)
{
	overwrite = !overwrite;
	auto ret = CopyFileA(source.c_str(), dest.c_str(), overwrite);

	if (ret == 0)
	{
		ec_-&gt;assign(GetLastError(), file_category());
	}
}
</code></pre>
<p>Wenn beim kopieren ein Fehler auftritt und dem <em>error_code_ptr</em> mit der Methode <em>assign</em> der Fehlercode zugewiesen werden soll stürzt das Programm einfach ab.</p>
<p>Kann mir da jmd. weiterhelfen? Ich muss auch gestehen, dass ich bei den Smartpointern noch nicht wirklich durchblicke.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2352208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2352208</guid><dc:creator><![CDATA[smartpointer_noob]]></dc:creator><pubDate>Thu, 12 Sep 2013 14:42:32 GMT</pubDate></item><item><title><![CDATA[Reply to unique_ptr und kleines problemchen on Thu, 12 Sep 2013 14:45:31 GMT]]></title><description><![CDATA[<p>Du dereferenzierst einen Nullzeiger. Initialisiere <code>ec_</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2352210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2352210</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 12 Sep 2013 14:45:31 GMT</pubDate></item><item><title><![CDATA[Reply to unique_ptr und kleines problemchen on Thu, 12 Sep 2013 14:48:08 GMT]]></title><description><![CDATA[<p>Warum benutzt du da überhaupt einen Poiter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2352211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2352211</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 12 Sep 2013 14:48:08 GMT</pubDate></item><item><title><![CDATA[Reply to unique_ptr und kleines problemchen on Thu, 12 Sep 2013 14:49:24 GMT]]></title><description><![CDATA[<p>Besser: nutze direkt std::error_code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2352212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2352212</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Thu, 12 Sep 2013 14:49:24 GMT</pubDate></item></channel></rss>