<?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[Implitzite Konvertierung von std::vector&amp;lt;std::shared_ptr&amp;lt;int&amp;gt;&amp;gt; nach std::vector&amp;lt;std::shared_ptr&amp;lt;const int&amp;gt;&amp;gt;?]]></title><description><![CDATA[<p>Hallo zusammen,<br />
kann man etwas tun, damit Zeile 12 so funktioniert wie Zeile 11 das tut?</p>
<pre><code class="language-cpp">#include &lt;memory&gt;
#include &lt;vector&gt;
typedef std::shared_ptr&lt;int&gt; IntPtr;
typedef std::vector&lt;IntPtr&gt; IntPtrs;
typedef std::shared_ptr&lt;const int&gt; ConstIntPtr;
typedef std::vector&lt;ConstIntPtr&gt; ConstIntPtrs;
int main()
{
    IntPtr intPtr;
    IntPtrs intPtrs;
    ConstIntPtr constIntPtr(intPtr);
    ConstIntPtrs constIntPtrs(intPtrs);
}
</code></pre>
<p>Bei einer eigenen Klasse würde man natürlich den conversion operator überladen können. Geht das in diesem Fall hier mit einer freien Funktion?<br />
Gruß<br />
Dobi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306409/implitzite-konvertierung-von-std-vector-lt-std-shared_ptr-lt-int-gt-gt-nach-std-vector-lt-std-shared_ptr-lt-const-int-gt-gt</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 07:36:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306409.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Jul 2012 15:51:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Implitzite Konvertierung von std::vector&amp;lt;std::shared_ptr&amp;lt;int&amp;gt;&amp;gt; nach std::vector&amp;lt;std::shared_ptr&amp;lt;const int&amp;gt;&amp;gt;? on Fri, 27 Jul 2012 15:51:23 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
kann man etwas tun, damit Zeile 12 so funktioniert wie Zeile 11 das tut?</p>
<pre><code class="language-cpp">#include &lt;memory&gt;
#include &lt;vector&gt;
typedef std::shared_ptr&lt;int&gt; IntPtr;
typedef std::vector&lt;IntPtr&gt; IntPtrs;
typedef std::shared_ptr&lt;const int&gt; ConstIntPtr;
typedef std::vector&lt;ConstIntPtr&gt; ConstIntPtrs;
int main()
{
    IntPtr intPtr;
    IntPtrs intPtrs;
    ConstIntPtr constIntPtr(intPtr);
    ConstIntPtrs constIntPtrs(intPtrs);
}
</code></pre>
<p>Bei einer eigenen Klasse würde man natürlich den conversion operator überladen können. Geht das in diesem Fall hier mit einer freien Funktion?<br />
Gruß<br />
Dobi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236256</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Fri, 27 Jul 2012 15:51:23 GMT</pubDate></item><item><title><![CDATA[Reply to Implitzite Konvertierung von std::vector&amp;lt;std::shared_ptr&amp;lt;int&amp;gt;&amp;gt; nach std::vector&amp;lt;std::shared_ptr&amp;lt;const int&amp;gt;&amp;gt;? on Fri, 27 Jul 2012 16:00:28 GMT]]></title><description><![CDATA[<p>Dobi schrieb:</p>
<blockquote>
<p>Geht das in diesem Fall hier mit einer freien Funktion?</p>
</blockquote>
<p>Dann wär das keine implizite, sondern eine Explizite Konversion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236259</guid><dc:creator><![CDATA[IrgendeinName]]></dc:creator><pubDate>Fri, 27 Jul 2012 16:00:28 GMT</pubDate></item><item><title><![CDATA[Reply to Implitzite Konvertierung von std::vector&amp;lt;std::shared_ptr&amp;lt;int&amp;gt;&amp;gt; nach std::vector&amp;lt;std::shared_ptr&amp;lt;const int&amp;gt;&amp;gt;? on Fri, 27 Jul 2012 16:05:40 GMT]]></title><description><![CDATA[<p>Willst du eine Kopie machen, wie im Beispiel dargestellt?<br />
Dann schreib doch einfach</p>
<pre><code class="language-cpp">ConstIntPtrs constIntPtrs(intPtrs.begin(), intPtrs.end());
</code></pre>
<p>Eine Referenz o.ä. kannst du sowieso unter keinen Umständen bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236261</guid><dc:creator><![CDATA[asdfmasodrfgmy]]></dc:creator><pubDate>Fri, 27 Jul 2012 16:05:40 GMT</pubDate></item><item><title><![CDATA[Reply to Implitzite Konvertierung von std::vector&amp;lt;std::shared_ptr&amp;lt;int&amp;gt;&amp;gt; nach std::vector&amp;lt;std::shared_ptr&amp;lt;const int&amp;gt;&amp;gt;? on Fri, 27 Jul 2012 16:13:09 GMT]]></title><description><![CDATA[<p>Ok, also wie im ersten Post geht's nicht, sondern nur so?</p>
<pre><code class="language-cpp">#include &lt;memory&gt;
#include &lt;vector&gt;
#include &lt;iterator&gt;
#include &lt;algorithm&gt;
typedef std::shared_ptr&lt;int&gt; IntPtr;
typedef std::vector&lt;IntPtr&gt; IntPtrs;
typedef std::shared_ptr&lt;const int&gt; ConstIntPtr;
typedef std::vector&lt;ConstIntPtr&gt; ConstIntPtrs;
ConstIntPtrs Constify(IntPtrs intPtrs)
{
	ConstIntPtrs result;
	result.reserve(intPtrs.size());
	std::transform(std::begin(intPtrs), std::end(intPtrs), std::back_inserter(result), [](IntPtr intPtr) -&gt; ConstIntPtr {
		return intPtr;
	});
	return result;
}
int main()
{
	IntPtr intPtr;
	IntPtrs intPtrs;
	ConstIntPtr constIntPtr(intPtr);
	ConstIntPtrs constIntPtrs(std::begin(intPtrs), std::end(intPtrs));
	ConstIntPtrs constIntPtrsExplicit(Constify(intPtrs));
}
</code></pre>
<p>@asdfmasodrfgmy: Ja, ich will eine Kopie machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236264</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Fri, 27 Jul 2012 16:13:09 GMT</pubDate></item><item><title><![CDATA[Reply to Implitzite Konvertierung von std::vector&amp;lt;std::shared_ptr&amp;lt;int&amp;gt;&amp;gt; nach std::vector&amp;lt;std::shared_ptr&amp;lt;const int&amp;gt;&amp;gt;? on Fri, 27 Jul 2012 18:00:01 GMT]]></title><description><![CDATA[<p>Dobi schrieb:</p>
<blockquote>
<p>Ok, also wie im ersten Post geht's nicht, sondern nur so?</p>
</blockquote>
<p>Nö, passender Ctor wurde dir schon vom Vorposter gezeigt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236292</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 27 Jul 2012 18:00:01 GMT</pubDate></item><item><title><![CDATA[Reply to Implitzite Konvertierung von std::vector&amp;lt;std::shared_ptr&amp;lt;int&amp;gt;&amp;gt; nach std::vector&amp;lt;std::shared_ptr&amp;lt;const int&amp;gt;&amp;gt;? on Fri, 27 Jul 2012 18:01:43 GMT]]></title><description><![CDATA[<p>Jo, den hab ich in Zeile 23 ja auch benutzt. Hätte es irgendwie kennzeichnen sollen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Aber OK, so ist's ja auch echt einfach. Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236293</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Fri, 27 Jul 2012 18:01:43 GMT</pubDate></item></channel></rss>