<?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[bsp Programm aus Stroustrups buch funktioniert nicht?]]></title><description><![CDATA[<p>Hallo, ich hab auf Seite 640 von &quot;Die C++ Programmiersprache&quot; ein Beispiel gefunden und rätsele jetzt herum warum dass nich kompiliert, mein Compiler ist<br />
gcc (SUSE Linux) 4.3.1 20080507 (prerelease)</p>
<p>So hier mal das Bsp:</p>
<pre><code>#include &lt;iostream&gt;
#include&lt;algorithm&gt;
using namespace std;
template &lt;typename CH&gt; class basic_substring{
public:
    typedef typename basic_string&lt;CH&gt;::size_type size_type;

    basic_substring(basic_string&lt;CH&gt; &amp;sarg, size_type iarg, size_type narg):s(sarg),i(iarg),n(narg){   }

    basic_substring&lt;CH&gt; &amp;operator=(const basic_string&lt;CH&gt; &amp;substring){
        s.replace(i,n,substring);
        n=substring.length();
    }
    operator basic_string&lt;CH&gt;()const{
        return basic_string&lt;CH&gt;(s,i,n);
    }
    operator const CH*()const{
        const char *c = copy(s.c_str()+i,s.c_str()+n+i,new char[n]) -n;
        return c;

    }
private:
    basic_string&lt;CH&gt; &amp;s;
    size_type i;
    size_type n;
};
typedef basic_substring&lt;char&gt; Substring;
int main(int argc, char *argv[])
{
    string s=&quot;Class information items are simple name--value pairs that are specified using Q_CLASSINFO() in the source code.&quot;;
    Substring su(s,0,50);
    string s2=&quot;lawl&quot;+Substring(s,0,50);         ///Hier gibts ne Fehlermeldung                                    
    cout&lt;&lt;s2&lt;&lt;endl;
    return 0;
}
</code></pre>
<p>Hat jemand ne Idee warum die Addition mit dem Substring nicht Funktioniert/Compiliert?</p>
<p>gruesse theBuck</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/246817/bsp-programm-aus-stroustrups-buch-funktioniert-nicht</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 20:45:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/246817.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 02 Aug 2009 10:41:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to bsp Programm aus Stroustrups buch funktioniert nicht? on Sun, 02 Aug 2009 10:41:52 GMT]]></title><description><![CDATA[<p>Hallo, ich hab auf Seite 640 von &quot;Die C++ Programmiersprache&quot; ein Beispiel gefunden und rätsele jetzt herum warum dass nich kompiliert, mein Compiler ist<br />
gcc (SUSE Linux) 4.3.1 20080507 (prerelease)</p>
<p>So hier mal das Bsp:</p>
<pre><code>#include &lt;iostream&gt;
#include&lt;algorithm&gt;
using namespace std;
template &lt;typename CH&gt; class basic_substring{
public:
    typedef typename basic_string&lt;CH&gt;::size_type size_type;

    basic_substring(basic_string&lt;CH&gt; &amp;sarg, size_type iarg, size_type narg):s(sarg),i(iarg),n(narg){   }

    basic_substring&lt;CH&gt; &amp;operator=(const basic_string&lt;CH&gt; &amp;substring){
        s.replace(i,n,substring);
        n=substring.length();
    }
    operator basic_string&lt;CH&gt;()const{
        return basic_string&lt;CH&gt;(s,i,n);
    }
    operator const CH*()const{
        const char *c = copy(s.c_str()+i,s.c_str()+n+i,new char[n]) -n;
        return c;

    }
private:
    basic_string&lt;CH&gt; &amp;s;
    size_type i;
    size_type n;
};
typedef basic_substring&lt;char&gt; Substring;
int main(int argc, char *argv[])
{
    string s=&quot;Class information items are simple name--value pairs that are specified using Q_CLASSINFO() in the source code.&quot;;
    Substring su(s,0,50);
    string s2=&quot;lawl&quot;+Substring(s,0,50);         ///Hier gibts ne Fehlermeldung                                    
    cout&lt;&lt;s2&lt;&lt;endl;
    return 0;
}
</code></pre>
<p>Hat jemand ne Idee warum die Addition mit dem Substring nicht Funktioniert/Compiliert?</p>
<p>gruesse theBuck</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1753931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1753931</guid><dc:creator><![CDATA[thebuck]]></dc:creator><pubDate>Sun, 02 Aug 2009 10:41:52 GMT</pubDate></item><item><title><![CDATA[Reply to bsp Programm aus Stroustrups buch funktioniert nicht? on Sun, 02 Aug 2009 10:48:35 GMT]]></title><description><![CDATA[<p>Du solltest schon immer sagen, welcher Fehler kommt.<br />
Wenn es der hier ist:</p>
<pre><code>error: no match for 'operator+' in 'std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;(((const char*)&quot;lawl&quot;), ((const std::allocator&lt;char&gt;&amp;)((const std::allocator&lt;char&gt;*)(&amp; std::allocator&lt;char&gt;())))) + basic_substring&lt;char&gt;(((std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;)(&amp; s)), 0ul, 50ul)'
</code></pre>
<p>Dann scheinst du das Programm nicht komplett abgetippt zu haben, bzw. es kommt auf den nächsten Seiten eine Ergänzung. (Auf die Gefahr hin geschlagen zu werden: ich hab das Buch nicht...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1753935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1753935</guid><dc:creator><![CDATA[Buggalo]]></dc:creator><pubDate>Sun, 02 Aug 2009 10:48:35 GMT</pubDate></item><item><title><![CDATA[Reply to bsp Programm aus Stroustrups buch funktioniert nicht? on Sun, 02 Aug 2009 10:57:42 GMT]]></title><description><![CDATA[<p>Da fehlt definitiv noch ein <code>#include &lt;string&gt;</code> .</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1753942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1753942</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 02 Aug 2009 10:57:42 GMT</pubDate></item><item><title><![CDATA[Reply to bsp Programm aus Stroustrups buch funktioniert nicht? on Sun, 02 Aug 2009 15:49:15 GMT]]></title><description><![CDATA[<p>Hallo, ich schätze mal Herr Stroustrup hatte vergessen zu erwähnen, dass man noch einen operator in dieser Form überladen muss:</p>
<pre><code>typedef basic_substring&lt;char&gt; Substring;
template &lt;typename CH&gt;
        string operator +(const CH *c,basic_substring&lt;CH&gt; s){
    return c+s.operator basic_string&lt;CH&gt;();
}
</code></pre>
<p>Ich war allerdings überrascht dass es mögich ist sowas zu machen:</p>
<pre><code>#include &lt;iostream&gt;
#include&lt;string&gt;
#include&lt;algorithm&gt;
using namespace std;
template &lt;typename CH&gt; class basic_substring{
public:
    typedef typename basic_string&lt;CH&gt;::size_type size_type;

    basic_substring(basic_string&lt;CH&gt; &amp;sarg, size_type iarg, size_type narg):s(sarg),i(iarg),n(narg){   }

    basic_substring&lt;CH&gt; &amp;operator=(const basic_string&lt;CH&gt; &amp;substring){
        s.replace(i,n,substring);
        n=substring.length();
    }
    operator int()const{
        return 5;

    }
private:
    basic_string&lt;CH&gt; &amp;s;
    size_type i;
    size_type n;
};
int main(int argc, char *argv[])
{
    string s=&quot;text&quot;;
    cout&lt;&lt;5+basic_substring&lt;char&gt;(s,0,3)&lt;&lt;endl; ///Augen hierdrauf.
    return 0;
}
</code></pre>
<p>Deswegen dachte ich dass es bei dem Bsp vom ersten Post auch so funktionieren kann.</p>
<p>Gruss theBuck</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1754063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1754063</guid><dc:creator><![CDATA[thebuck]]></dc:creator><pubDate>Sun, 02 Aug 2009 15:49:15 GMT</pubDate></item><item><title><![CDATA[Reply to bsp Programm aus Stroustrups buch funktioniert nicht? on Mon, 03 Aug 2009 06:58:58 GMT]]></title><description><![CDATA[<p>thebuck schrieb:</p>
<blockquote>
<p>Hallo, ich schätze mal Herr Stroustrup hatte vergessen zu erwähnen, dass man noch einen operator in dieser Form überladen muss: [...]</p>
</blockquote>
<p>Der operator wird in &lt;string&gt; mitgeliefert. Du hast vermutlich einfach nur den #include vergessen/übersehen.</p>
<p>PS: wenn du statt der [code]-Tags [cpp]-Tags verwendest gibts für deinen Code noch Syntax-Coloring frei Haus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1754347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1754347</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 03 Aug 2009 06:58:58 GMT</pubDate></item></channel></rss>