<?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[STL und _com_ptr_t]]></title><description><![CDATA[<p>Hallo,</p>
<p>kann mir jemand sagen, wie _com_ptr_t zusammen mit der STL verwendet werden können?<br />
_com_ptr_t kapseln als Smartpointer ja immer ein Interface.<br />
Ich habe bisher noch nicht heraus gefunden, wie man diese zusammen mit der STL verwenden kann bzw. was dabei zu beachten ist.<br />
Konkret, funktioniert das einfügen von _com_ptr_t z.B. nicht bei set's (da diese wohl nicht richtig einsortiert werden können).<br />
Auch habe ich noch nirgends ein brauchbares Beispiel z.B. für set_intersection(...) gefunden, bei welchem aus zwei Mengen die Objekte herausgefiltert werden, welche die gleichen Interfaces haben.</p>
<p>Kann mir jemand einen Tipp geben bzw. einen Link schicken, wo ich dazu Infos finde?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/311589/stl-und-_com_ptr_t</link><generator>RSS for Node</generator><lastBuildDate>Mon, 03 Aug 2026 11:30:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/311589.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 09 Dec 2012 13:58:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to STL und _com_ptr_t on Sun, 09 Dec 2012 13:58:17 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>kann mir jemand sagen, wie _com_ptr_t zusammen mit der STL verwendet werden können?<br />
_com_ptr_t kapseln als Smartpointer ja immer ein Interface.<br />
Ich habe bisher noch nicht heraus gefunden, wie man diese zusammen mit der STL verwenden kann bzw. was dabei zu beachten ist.<br />
Konkret, funktioniert das einfügen von _com_ptr_t z.B. nicht bei set's (da diese wohl nicht richtig einsortiert werden können).<br />
Auch habe ich noch nirgends ein brauchbares Beispiel z.B. für set_intersection(...) gefunden, bei welchem aus zwei Mengen die Objekte herausgefiltert werden, welche die gleichen Interfaces haben.</p>
<p>Kann mir jemand einen Tipp geben bzw. einen Link schicken, wo ich dazu Infos finde?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278669</guid><dc:creator><![CDATA[Perdone]]></dc:creator><pubDate>Sun, 09 Dec 2012 13:58:17 GMT</pubDate></item><item><title><![CDATA[Reply to STL und _com_ptr_t on Sun, 09 Dec 2012 14:55:04 GMT]]></title><description><![CDATA[<p>Ich kenne zwar <code>_com_ptr_t</code> nicht, aber falls dessen Schnittstelle ungeeignet für STL-Container ist, kannst du ja einen Wrapper darum herum schreiben. Damit kannst du auch Operatoren anbieten, um Sortierung in <code>std::set</code> s zu ermöglichen. Oder du schreibst dir einfach einen Funktor, der Elemente richtig ordnet, und verwendest ihn mit <code>std::set</code> .</p>
<p>Zur C++-Standardbibliothek findest du auf <a href="http://www.cppreference.com" rel="nofollow">www.cppreference.com</a> Informationen, es liegt an dir, sie mit <code>_com_ptr_t</code> zu kombinieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278685</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 09 Dec 2012 14:55:04 GMT</pubDate></item><item><title><![CDATA[Reply to STL und _com_ptr_t on Sun, 09 Dec 2012 16:40:40 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Ich kenne zwar <code>_com_ptr_t</code> nicht, aber falls dessen Schnittstelle ungeeignet für STL-Container ist, kannst du ja einen Wrapper darum herum schreiben. Damit kannst du auch Operatoren anbieten, um Sortierung in <code>std::set</code> s zu ermöglichen. Oder du schreibst dir einfach einen Funktor, der Elemente richtig ordnet, und verwendest ihn mit <code>std::set</code> .</p>
<p>Zur C++-Standardbibliothek findest du auf <a href="http://www.cppreference.com" rel="nofollow">www.cppreference.com</a> Informationen, es liegt an dir, sie mit <code>_com_ptr_t</code> zu kombinieren.</p>
</blockquote>
<p>Danke für die Antwort Nexus, aber so richtig weitergebracht hat mich es noch nicht: ich suche nach Beispielen, wo gezeigt wird, wie man z.B. die von dir vorgeschlagenen Techniken in Verbindung mit den Smartpointern (wie _com_ptr_t) einsetzt.<br />
Aber trotzdem danke nochmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278713</guid><dc:creator><![CDATA[Perdone]]></dc:creator><pubDate>Sun, 09 Dec 2012 16:40:40 GMT</pubDate></item><item><title><![CDATA[Reply to STL und _com_ptr_t on Sun, 09 Dec 2012 17:32:36 GMT]]></title><description><![CDATA[<p>An Smart-Pointern ist nichts speziell. Für die STL ist der Typ der Elemente weitgehend irrelevant. Einige Algorithmen und Datenstrukturen setzen zwar gewisse Operationen voraus, aber das betrifft vor allem Kopierkonstruktor, Zuweisungsoperator, <code>operator&lt;</code> , <code>operator==</code> etc. und nichts Smart-Pointer-Spezifisches.</p>
<p>Du schaust dir also lieber die STL selbst an. Wenn du verstehst, wie sie zu verwenden ist, kannst du sie auch mit deinem <code>_com_ptr_t</code> kombinieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278728</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 09 Dec 2012 17:32:36 GMT</pubDate></item><item><title><![CDATA[Reply to STL und _com_ptr_t on Sun, 09 Dec 2012 19:43:49 GMT]]></title><description><![CDATA[<p>COM arbeitet doch mit Referenzzählern. Dann wird dieser com_ptr wahrscheinlich ähnlich wie shared_ptr funktionieren. Wenn ja, dann ist das Ding normal kopier- und zuweisbar. Das ist auch schon alles, was die STL Container mit ihren Elementen machen wollen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278753</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 09 Dec 2012 19:43:49 GMT</pubDate></item><item><title><![CDATA[Reply to STL und _com_ptr_t on Sun, 09 Dec 2012 21:29:19 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>COM arbeitet doch mit Referenzzählern. Dann wird dieser com_ptr wahrscheinlich ähnlich wie shared_ptr funktionieren. Wenn ja, dann ist das Ding normal kopier- und zuweisbar. Das ist auch schon alles, was die STL Container mit ihren Elementen machen wollen...</p>
</blockquote>
<p>Neben der Kopier- und Zuweisbarkeit sollten die Objekte aber auch noch sortierbar sein: Wenn man z.B. std::set_intersection auf zwei vector-Container anwenden möchte, dann müssen diese vorher sortiert werden.<br />
Das Gleiche gilt beim Verwenden/Einfügen in set-Container bzw. für die Key-Elemente in Maps.<br />
Ich bin noch nicht genau dahinter gestiegen, wie das Ganze funktioniert, aber zu diesem Zweck wurde wohl die Klasse CAdapt eingführt.<br />
Siehe z.B.:<br />
<a href="http://msdn.microsoft.com/de-de/library/vstudio/bs6acf5x%28v=vs.90%29.aspx" rel="nofollow">http://msdn.microsoft.com/de-de/library/vstudio/bs6acf5x%28v=vs.90%29.aspx</a><br />
oder auch<br />
<a href="http://stackoverflow.com/questions/2719741/advice-when-using-com-object-ccomptr-and-the-stl" rel="nofollow">http://stackoverflow.com/questions/2719741/advice-when-using-com-object-ccomptr-and-the-stl</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278770</guid><dc:creator><![CDATA[Perdone]]></dc:creator><pubDate>Sun, 09 Dec 2012 21:29:19 GMT</pubDate></item><item><title><![CDATA[Reply to STL und _com_ptr_t on Sun, 09 Dec 2012 23:00:18 GMT]]></title><description><![CDATA[<p>Perdone schrieb:</p>
<blockquote>
<p>Neben der Kopier- und Zuweisbarkeit sollten die Objekte aber auch noch sortierbar sein: Wenn man z.B. std::set_intersection auf zwei vector-Container anwenden möchte, dann müssen diese vorher sortiert werden.<br />
Das Gleiche gilt beim Verwenden/Einfügen in set-Container bzw. für die Key-Elemente in Maps.</p>
</blockquote>
<p>Das ist aber schon sehr speziell. Viele vector-Nutzer brauchen das nicht. Und die, die es brauchen, haben natürlicherweise auch irgendeine Art von Sortierkriterium, denn sonst machen diese Aktionen logisch keinen Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278804</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 09 Dec 2012 23:00:18 GMT</pubDate></item></channel></rss>