<?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[boost::variant nicht copy&#x2F;movable?]]></title><description><![CDATA[<p>Huhu,</p>
<p>Täusche ich mich, oder ist boost::variant weder copy-, noch movable? Gibt es dafür einen Grund?</p>
<p>Ich habe copy und move emuliert, aber schön ist das natürlich nicht.</p>
<pre><code class="language-cpp">template &lt;typename Variant&gt;
struct copy_visitor : boost::static_visitor&lt;&gt;
{
	const Variant&amp; variant;

	copy_visitor(Variant&amp; variant)
		: variant(variant)
	{}

	template &lt;typename T&gt;
	void operator () (const T&amp; t) const // muss const sein, da boost intern eine const&amp; verwendet
	{
		const_cast&lt;Variant&amp;&gt;(variant) = t;
	}
};

template &lt;typename Variant&gt;
struct move_visitor : boost::static_visitor&lt;&gt;
{
	const Variant&amp; variant;

	move_visitor(Variant&amp; variant)
		: variant(variant)
	{}

	template &lt;typename T&gt;
	void operator () (T&amp; t) const // wie oben
	{
		const_cast&lt;Variant&amp;&gt;(variant) = std::move(t);
	}
};
</code></pre>
<p>Grüße,<br />
PI</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/293645/boost-variant-nicht-copy-movable</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 05:43:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/293645.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 07 Oct 2011 22:35:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to boost::variant nicht copy&#x2F;movable? on Fri, 07 Oct 2011 22:49:08 GMT]]></title><description><![CDATA[<p>Huhu,</p>
<p>Täusche ich mich, oder ist boost::variant weder copy-, noch movable? Gibt es dafür einen Grund?</p>
<p>Ich habe copy und move emuliert, aber schön ist das natürlich nicht.</p>
<pre><code class="language-cpp">template &lt;typename Variant&gt;
struct copy_visitor : boost::static_visitor&lt;&gt;
{
	const Variant&amp; variant;

	copy_visitor(Variant&amp; variant)
		: variant(variant)
	{}

	template &lt;typename T&gt;
	void operator () (const T&amp; t) const // muss const sein, da boost intern eine const&amp; verwendet
	{
		const_cast&lt;Variant&amp;&gt;(variant) = t;
	}
};

template &lt;typename Variant&gt;
struct move_visitor : boost::static_visitor&lt;&gt;
{
	const Variant&amp; variant;

	move_visitor(Variant&amp; variant)
		: variant(variant)
	{}

	template &lt;typename T&gt;
	void operator () (T&amp; t) const // wie oben
	{
		const_cast&lt;Variant&amp;&gt;(variant) = std::move(t);
	}
};
</code></pre>
<p>Grüße,<br />
PI</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2128590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2128590</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Fri, 07 Oct 2011 22:49:08 GMT</pubDate></item><item><title><![CDATA[Reply to boost::variant nicht copy&#x2F;movable? on Fri, 07 Oct 2011 23:11:05 GMT]]></title><description><![CDATA[<p>Ich kann das nicht nachvollziehen. Folgendes kompiliert bei mir problemlos:</p>
<pre><code class="language-cpp">#include &lt;boost/variant.hpp&gt;

int main() {
  boost::variant&lt;int, double&gt; v(1.0);
  boost::variant&lt;int, double&gt; v2(v);

  v = v2;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2128605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2128605</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Fri, 07 Oct 2011 23:11:05 GMT</pubDate></item><item><title><![CDATA[Reply to boost::variant nicht copy&#x2F;movable? on Fri, 07 Oct 2011 23:24:57 GMT]]></title><description><![CDATA[<p>Hm, tatsächlich, nun funktionierts bei mir auch. Hab ich wohl irgendwas anderes falsch gemacht, danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2128607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2128607</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Fri, 07 Oct 2011 23:24:57 GMT</pubDate></item></channel></rss>