<?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[Cast-Operator ueberladen in Templates]]></title><description><![CDATA[<p>Hoi. Wie an anderer Stelle schon vorgestellt, hab ich mir ein Klasse offsetvector geschrieben, die intern einen std::vector benutzt. Soeben ist CINT auf den Trichter gekommen, mir den cast-operator zu bemaengeln, den ich hinzugeuegt habe, um aus einem offsetvector einen normale vector machen zu koennen:</p>
<pre><code class="language-cpp">template &lt;class T, class Allocator = std::allocator&lt;T&gt; &gt;

class offsetvector
{
public:
//[...]

  operator std::vector&lt;T, Allocator&gt;() { return vec_; };  //line 46

//[...]

private:
std::vector&lt;T, Allocator&gt; vec_;
};
</code></pre>
<p>Die Fehlermeldung besagt folgendes:</p>
<pre><code>Error: Too many template arguments offsetvector.h:46:
</code></pre>
<p>Was ist falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187307/cast-operator-ueberladen-in-templates</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 17:55:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187307.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Jul 2007 10:44:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Cast-Operator ueberladen in Templates on Wed, 18 Jul 2007 10:44:13 GMT]]></title><description><![CDATA[<p>Hoi. Wie an anderer Stelle schon vorgestellt, hab ich mir ein Klasse offsetvector geschrieben, die intern einen std::vector benutzt. Soeben ist CINT auf den Trichter gekommen, mir den cast-operator zu bemaengeln, den ich hinzugeuegt habe, um aus einem offsetvector einen normale vector machen zu koennen:</p>
<pre><code class="language-cpp">template &lt;class T, class Allocator = std::allocator&lt;T&gt; &gt;

class offsetvector
{
public:
//[...]

  operator std::vector&lt;T, Allocator&gt;() { return vec_; };  //line 46

//[...]

private:
std::vector&lt;T, Allocator&gt; vec_;
};
</code></pre>
<p>Die Fehlermeldung besagt folgendes:</p>
<pre><code>Error: Too many template arguments offsetvector.h:46:
</code></pre>
<p>Was ist falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327683</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 18 Jul 2007 10:44:13 GMT</pubDate></item><item><title><![CDATA[Reply to Cast-Operator ueberladen in Templates on Wed, 18 Jul 2007 11:42:06 GMT]]></title><description><![CDATA[<p>Hm, nachdem er nach Auskommentieren des Cast-operators ueber einen Konstuktor gemeckert hat, hab ich versucht, in meinem Programm nur einen std::vector zu benutzen - jetzt meckert er sogar ueber einen der std::vector Konstruktoren. Werd mich mal kundig machen, warum er jetzt nichtmal die STL akzeptiert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327728</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 18 Jul 2007 11:42:06 GMT</pubDate></item><item><title><![CDATA[Reply to Cast-Operator ueberladen in Templates on Wed, 18 Jul 2007 11:43:22 GMT]]></title><description><![CDATA[<p>Hast du denn überhaupt die &lt;vector&gt; includet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327730</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 18 Jul 2007 11:43:22 GMT</pubDate></item><item><title><![CDATA[Reply to Cast-Operator ueberladen in Templates on Wed, 18 Jul 2007 12:16:52 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Hast du denn überhaupt die &lt;vector&gt; includet?</p>
</blockquote>
<p>hab ich:</p>
<pre><code class="language-cpp">#ifndef lumis__
#define lumis__

#include &lt;vector&gt;
#include &lt;iostream&gt;

typedef std::vector&lt;double&gt; dblvec;
typedef std::vector&lt;dblvec&gt; dblvecvec;

dblvecvec lumis;

struct LumiFiller
{
public:
  LumiFiller() 
  { lumis.resize(2); }
};

LumiFiller a;

#endif
</code></pre>
<p>bei lumis.resize(2) faengt er an zu meckern</p>
<pre><code>Error: illegal type cast (2) _vector.h:182:
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1327749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327749</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 18 Jul 2007 12:16:52 GMT</pubDate></item><item><title><![CDATA[Reply to Cast-Operator ueberladen in Templates on Wed, 18 Jul 2007 12:18:49 GMT]]></title><description><![CDATA[<p>ich quote hier mal noch welche Gedanken ich mir dazu im ROOT-forum gemacht habe:</p>
<blockquote>
<p>According to my STL reference, vector&lt;T&gt;.resize is declared as</p>
<pre><code>void  resize(size_type sz, T c = T());
</code></pre>
<p>thus my call above shoud be evaluated as</p>
<pre><code>lumis.resize(2, std::vector&lt;double&gt;() );
</code></pre>
<p>where the default constructor of vector is declared as</p>
<pre><code>template &lt;class T, class Allocator = std::allocator&lt;T&gt; &gt;
class vector {
vector(const Allocator&amp; = Allocator() );
};
</code></pre>
<p>when calling resize() with explicit mention of std::vector&lt;double&gt;(), I get a segmentation violation...</p>
<p>What am I doing wrong?</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1327753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327753</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 18 Jul 2007 12:18:49 GMT</pubDate></item><item><title><![CDATA[Reply to Cast-Operator ueberladen in Templates on Fri, 20 Jul 2007 18:18:27 GMT]]></title><description><![CDATA[<p>Mach mal ein</p>
<pre><code class="language-cpp">lumis.resize(dblvecvec::sizetype(2));
</code></pre>
<p>daraus. Der Compiler scheitert hier an Mehrdeutigkeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329438</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Fri, 20 Jul 2007 18:18:27 GMT</pubDate></item></channel></rss>