<rss version="2.0">
<channel>
<title>de.comp.lang.iso-c++ :: ISO-konformes C++. <voyager@bud.prima.de> (Moderated)</title>
<link>http://www.nnseek.com/e/de.comp.lang.iso-c++/</link>
<description>Posts for de.comp.lang.iso-c++</description>
<lastBuildDate>Tue, 16 Jan 2007 07:47:08 PST</lastBuildDate>
  <image>
    <title>http://www.nnseek.com/</title>
    <link>http://www.nnseek.com/</link>
    <url>http://www.nnseek.com/img/64.png</url>
    <width>64</width>
    <height>64</height>
    <description>NNSeek</description>
  </image>
<item>
	<title><![CDATA[Einlesen von Aufz&auml;hlungstypen]]></title>
	<guid>http://www.nnseek.com/e/de.comp.lang.iso-c++/einlesen_von_aufz5hlungstypen_34342005t.html</guid>
	<link>http://www.nnseek.com/e/de.comp.lang.iso-c++/einlesen_von_aufz5hlungstypen_34342005t.html</link>
	<description><![CDATA[Hallo zusammen,<br><br>ich habe folgendes Problem:<br><br>Ich möchte einen von mir definierten Aufzählungstyp entweder von der<br>Standardeingabe oder aus einer externen Datei einlesen. Leider funktioniert<br>das nicht ohne weiteres. Unten habe ich das Problem kurz dargestellt.<br><br>#include<iostream><br>#include<string><br>#include<fstream><br><br>using namespace std;<br><br>enum TYP { eins, zwei, drei};<br><br>int main()<br>{<br>    string input("datIn");<br>    ifstream IN(input.c_str());<br>    TYP t;<br><br>    cin >> t;  // Fehlermeldung<br><br>    return 0;<br>}<br><br>Ist es möglich, für Aufzählungstypen einen Eingabeoperator zu definieren ?<br>Oder wie lässt sich das Problem lösen.<br><br>Ich bedanke mich schonmal im Voraus für Vorschläge<br>
    <table border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="30">&nbsp;</td>
        <td>Posted In: <a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/">de.comp.lang.iso-c++</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/einlesen_von_aufz5hlungstypen_34342005t.html"><b>2</b> Comments</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/einlesen_von_aufz5hlungstypen_34342005m.html">Reply</a></td>
      </tr></table><br>]]></description>
	<pubDate>Tue, 16 Jan 2007 07:47:08 PST</pubDate>
</item>
<item>
	<title><![CDATA[Richtiger Header: &lt;math.h&gt; oder &lt;cmath&gt;]]></title>
	<guid>http://www.nnseek.com/e/de.comp.lang.iso-c++/richtiger_header_oder_34200949t.html</guid>
	<link>http://www.nnseek.com/e/de.comp.lang.iso-c++/richtiger_header_oder_34200949t.html</link>
	<description><![CDATA[Hallo zusammen,<br><br>was ist nach C++-Standard die richtige Header-Datei?<br><br>#include <math.h><br><br>oder<br><br>#include <cmath><br><br>Danke<br>
    <table border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="30">&nbsp;</td>
        <td>Posted In: <a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/">de.comp.lang.iso-c++</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/richtiger_header_oder_34200949t.html">no comments</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/richtiger_header_oder_34200949m.html">Reply</a></td>
      </tr></table><br>]]></description>
	<pubDate>Mon, 15 Jan 2007 08:14:46 PST</pubDate>
</item>
<item>
	<title><![CDATA[C++ sleep(unsigned int seconds)]]></title>
	<guid>http://www.nnseek.com/e/de.comp.lang.iso-c++/c_sleep_unsigned_int_seconds_33532277t.html</guid>
	<link>http://www.nnseek.com/e/de.comp.lang.iso-c++/c_sleep_unsigned_int_seconds_33532277t.html</link>
	<description><![CDATA[Hallo,<br><br>Ich komm direkt zur Sache weil es schon relativ spät ist:<br><br>Gibt es in C++ eine Funktion wie sleep() aus unistd.h welche X  <br>Millisekunden wartet?<br>Hier in meinem Linuxsystem erwartet die Funktion nämlich Sekunden, ich  <br>brauche allerdings eine welche Millisekunden warten kann.<br><br>Also z.B.<br>int sleep(unsigned int msec);<br><br><br>Und bitte keine Win-Api Funktionen, ich sitze an einem Linuxsystem und hab  <br>vor daran zu bleiben.<br><br>MfG<br>Moritz Ulrich<br>
    <table border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="30">&nbsp;</td>
        <td>Posted In: <a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/">de.comp.lang.iso-c++</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/c_sleep_unsigned_int_seconds_33532277t.html"><b>5</b> Comments</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/c_sleep_unsigned_int_seconds_33532277m.html">Reply</a></td>
      </tr></table><br>]]></description>
	<pubDate>Fri, 12 Jan 2007 18:42:30 PST</pubDate>
</item>
<item>
	<title><![CDATA[Buchempfehlung zur C++-Nutzung gesucht]]></title>
	<guid>http://www.nnseek.com/e/de.comp.lang.iso-c++/buchempfehlung_zur_c_nutzung_gesucht_33442165t.html</guid>
	<link>http://www.nnseek.com/e/de.comp.lang.iso-c++/buchempfehlung_zur_c_nutzung_gesucht_33442165t.html</link>
	<description><![CDATA[Hallo,<br><br>mit den Features der Sprache C++, d.h. wie Klassen deklariert werden, was<br>Zugriffschutz ist, wie eine Ableitung funktioniert und was Polymorphismus<br>ist usw. kenne ich mich mittlerweile aus. Allerdings fehlt mir das<br>Wissen/Verständnis wann was warum in der Praxis einzusetzen ist.<br><br>Also vielleicht etwas mehr Gewicht auf Konzepte als auf die Sprache, aber<br>bitte doch anhand von C++.<br><br>Vielleicht hat der eine oder andere von euch in dieser Hinsicht eine<br>Empfehlung für mich.<br><br>Grüße,<br>Jürgen  <br>
    <table border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="30">&nbsp;</td>
        <td>Posted In: <a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/">de.comp.lang.iso-c++</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/buchempfehlung_zur_c_nutzung_gesucht_33442165t.html"><b>22</b> Comments</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/buchempfehlung_zur_c_nutzung_gesucht_33442165m.html">Reply</a></td>
      </tr></table><br>]]></description>
	<pubDate>Fri, 12 Jan 2007 03:27:19 PST</pubDate>
</item>
<item>
	<title><![CDATA[Wert von non-type-template-parametern]]></title>
	<guid>http://www.nnseek.com/e/de.comp.lang.iso-c++/wert_von_non_type_template_parametern_33441909t.html</guid>
	<link>http://www.nnseek.com/e/de.comp.lang.iso-c++/wert_von_non_type_template_parametern_33441909t.html</link>
	<description><![CDATA[Hallo zusammen,<br><br>ich habe das folgende Problem: ich habe eine template-Funktion mit<br>non-type Parameter:<br><br>template<int N><br>void f();<br><br>Jetz möchte ich das template für bestimmte N explizit spezialisieren:<br>template<><br>void f<0>() {}<br><br>template<><br>void f<42>() {}<br><br>// etc<br><br>Soweit so gut. Aber: ist es denn irgendwie möglich in der<br>Implementierung von f<...>() auf den konstanten template-Parameter<br>zuzugreifen? Natürlich könnte ich überall wo ich ihn brauche<br>explizit den Wert einsetzen, aber das erscheint mir fehlerträchtig.<br>In jeder Spezialisierung ein<br>static const int PARAM(0); // oder 42 oder...<br>zu definieren ist vielleicht besser, aber auch nicht sehr schön, durch<br>copy/paste ist da leicht ein Fehler passiert. Ausserdem ist es<br>eigentlich nicht einzusehen, dass ich den Wert des Parameters nochmal<br>angeben muss, wenn er doch schon explizit (sic) da steht.<br><br>Ist euch das auch schon aufgestoßen und wenn ja, wie geht ihr da vor?<br><br>Danke schon im Voraus<br>Norbert<br>
    <table border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="30">&nbsp;</td>
        <td>Posted In: <a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/">de.comp.lang.iso-c++</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/wert_von_non_type_template_parametern_33441909t.html"><b>2</b> Comments</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/wert_von_non_type_template_parametern_33441909m.html">Reply</a></td>
      </tr></table><br>]]></description>
	<pubDate>Fri, 12 Jan 2007 03:25:16 PST</pubDate>
</item>
<item>
	<title><![CDATA[Re: &quot;standard-Zuweisungsoperator kann nicht benutzt werden&quot;]]></title>
	<guid>http://www.nnseek.com/e/de.comp.lang.iso-c++/standard_zuweisungsoperator_kann_nicht_benutzt_wer_33442421t.html</guid>
	<link>http://www.nnseek.com/e/de.comp.lang.iso-c++/standard_zuweisungsoperator_kann_nicht_benutzt_wer_33442421t.html</link>
	<description><![CDATA[Moin,<br><br>Torsten Robitzki schrieb...<br>> Der vom Compiler erzeugte Zuweisungsoperator der Elemente funktioniert <br>> nicht, da die Referenzen nicht zugewiesen werden können. Entweder Du <br>> schwenkst auf Zeiger um, oder definierst den Zuweisungsoperator selber.<br><br>Könnte man überhaupt eine Rferenz 'verbiegen'? Also so etwas:<br><br>#include <iostream><br>using namespace std;<br><br>struct FOO {<br>  FOO(int &val) : x(val) {}<br>  FOO &operator=(const FOO &rhs) {<br>	// ??? x=rhs.x, aber nicht als Value<br>	return *this;<br>  }<br>  void Set(int val) {x=val;}<br>  int &x;<br>};<br><br>int  i=1, j=2;<br><br>int main() {<br>  FOO a(i), b(j);<br>  a.Set(3);  // setzt i=3<br>  cout << "i=" << i << " j=" << j << endl;<br>  a = b;<br>  a.Set(4); // soll jetzt j setzen<br>  cout << "i=" << i << " j=" << j << endl;<br>}<br><br>Ausgabe ist<br>i=3 j=2<br>i=4 j=2<br><br>Mit Referenz 'verbiegen' soll aber<br>i=3 j=2<br>i=3 j=4<br>rauskommen. Mir ist aber kein 'legaler' Weg<br>bekannt.<br><br><br>- Heinz<br>
    <table border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="30">&nbsp;</td>
        <td>Posted In: <a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/">de.comp.lang.iso-c++</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/standard_zuweisungsoperator_kann_nicht_benutzt_wer_33442421t.html"><b>10</b> Comments</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/standard_zuweisungsoperator_kann_nicht_benutzt_wer_33442421m.html">Reply</a></td>
      </tr></table><br>]]></description>
	<pubDate>Fri, 12 Jan 2007 01:08:25 PST</pubDate>
</item>
<item>
	<title><![CDATA[Re: &quot;standard-Zuweisungsoperator kann nicht benutzt werden&quot;]]></title>
	<guid>http://www.nnseek.com/e/de.comp.lang.iso-c++/standard_zuweisungsoperator_kann_nicht_benutzt_wer_33441141t.html</guid>
	<link>http://www.nnseek.com/e/de.comp.lang.iso-c++/standard_zuweisungsoperator_kann_nicht_benutzt_wer_33441141t.html</link>
	<description><![CDATA[<br>> <br>> Der vom Compiler erzeugte Zuweisungsoperator der Elemente funktioniert <br>> nicht, da die Referenzen nicht zugewiesen werden können. Entweder Du <br>> schwenkst auf Zeiger um, oder definierst den Zuweisungsoperator selber.<br>> <br><br>Ok, erst einmal an alle, die mir auch diese Antwort gegeben haben: <br>Vielen Dank!<br><br>Warum aber hat der Compiler ein Problem damit, eine Referenz zu <br>kopieren? Die Referenz in dem neu erzeugten Objekt soll einfach auf das <br>gleiche Objekt verweisen, wie auch in der Klasse von der kopiert wurde!? <br>Ich kann doch sonst auch jederzeit etwas schreiben wie<br><br>string x = "hallo";<br>string& x_ref1 = x;<br>string& x_ref2 = x_ref1;<br><br><br>!??<br><br><br>Viele Grüße Boris<br>
    <table border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="30">&nbsp;</td>
        <td>Posted In: <a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/">de.comp.lang.iso-c++</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/standard_zuweisungsoperator_kann_nicht_benutzt_wer_33441141t.html"><b>2</b> Comments</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/standard_zuweisungsoperator_kann_nicht_benutzt_wer_33441141m.html">Reply</a></td>
      </tr></table><br>]]></description>
	<pubDate>Thu, 11 Jan 2007 15:07:23 PST</pubDate>
</item>
<item>
	<title><![CDATA[Lokale Klasse in Funktions-Template]]></title>
	<guid>http://www.nnseek.com/e/de.comp.lang.iso-c++/lokale_klasse_in_funktions_template_33441397t.html</guid>
	<link>http://www.nnseek.com/e/de.comp.lang.iso-c++/lokale_klasse_in_funktions_template_33441397t.html</link>
	<description><![CDATA[Hallo!<br>Anscheinend (eigentlich ja nichts neues) gibt es in Visual C++ 6 hier einen <br>Bug:<br><br>template<class A><br>void Test(A a1)<br>{<br>    class T<br>    {<br>        T() {}<br><br>        A a2;<br>    };<br>};<br><br>Im Hauptprogramm rufe ich z.B. Test(5) auf.<br>Bei diesem Code erhalte ich einen Internen Compiler-Fehler (1001, msc1.cpp <br>Zeile 1794).<br>(Wenn ich den Konstruktor weglasse, dann compiliert er anstandslos.)<br><br>Daher habe ich eine globale Template-Klasse für T eingeführt (für jedes <br>Funktionstemplate<br>brauche ich eine passende Klasse).<br><br>Gibt es hier auch einfachere (kürzere) Alternativen, den Fehler zu umgehen?<br>Ich brauche das Funktionstemplate in verschiedenen Versionen, und damit<br>jedes mal eine neue Template-Klasse...<br><br>Alex<br>
    <table border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="30">&nbsp;</td>
        <td>Posted In: <a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/">de.comp.lang.iso-c++</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/lokale_klasse_in_funktions_template_33441397t.html"><b>2</b> Comments</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/lokale_klasse_in_funktions_template_33441397m.html">Reply</a></td>
      </tr></table><br>]]></description>
	<pubDate>Thu, 11 Jan 2007 14:07:20 PST</pubDate>
</item>
<item>
	<title><![CDATA[Re: L&ouml;schen von Objekten]]></title>
	<guid>http://www.nnseek.com/e/de.comp.lang.iso-c++/l9schen_von_objekten_31606133t.html</guid>
	<link>http://www.nnseek.com/e/de.comp.lang.iso-c++/l9schen_von_objekten_31606133t.html</link>
	<description><![CDATA[Jürgen Herz wrote:<br>> int& func()<br>> {<br>>     int z = 17;<br>>     return z;<br>> }<br>> und<br>>   int mz = func();<br>> bzw.<br>>   int& mz = func();<br>> <br>> In ersterem Fall enthält aber mz immerhin 17, in letzterem Blödsinn.<br>> In Perl wird ein out-of-scope-Objekt erst gelöscht wenn es keine Referenz<br>> mehr darauf gibt. In C++ dürfte es anders sein (ja/nein?),<br><br>Ja, in Perl werden effektiv alle Objekte über das Äquivalent eines<br>boost::scoped_ptr verwaltet.<br><br>> also auch verständlich wenn die Sache schiefgeht.<br>> Ist es dann nur Zufall bzw. compilerabhängig wenn mz im ersten Fall den<br>> korrekten Wert enthält?<br><br>Zufall.<br><br>Real existierende Maschinen haben einen Stack. Den kannst du dir<br>vorstellen als ein dickes Array nebst Pointer<br>     int stack[10000000];<br>     int sp = 0;<br>     void push(int x) { stack[++sp] = x; }<br>     int pop() { return stack[sp--]; }<br>Die lokale Variable 'z' wird nun, z.B. per push, auf dem Stack angelegt.<br>Dann holt sich jemand eine Referenz darauf (für den Rückgabewert)<br>     int& rueckgabewert = stack[sp];<br>und schlussendlich wird die Variable mittels pop freigegeben. Solange<br>nun niemand push aufruft, bleibt der an der Adresse gespeicherte Wert<br>gültig. Bei 'int mz = func()' tut das der Compiler glücklicherweise<br>nicht. Allerdings ist es zum Beispiel möglich, dass zwischen der<br>Rückkehr aus func() und der Zuweisung des Rückgabewertes an mz ein<br>Signal eintrifft, welches push verwendet. In dem Fall würde ein<br>ungültiger Wert ankommen.<br><br>Formal ist das, was du tust, undefiniertes Verhalten, und es kann<br>prinzipiell alles passieren.<br><br><br>  Stefan<br>
    <table border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="30">&nbsp;</td>
        <td>Posted In: <a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/">de.comp.lang.iso-c++</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/l9schen_von_objekten_31606133t.html">no comments</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/l9schen_von_objekten_31606133m.html">Reply</a></td>
      </tr></table><br>]]></description>
	<pubDate>Fri, 05 Jan 2007 05:33:56 PST</pubDate>
</item>
<item>
	<title><![CDATA[Re: L&ouml;schen von Objekten]]></title>
	<guid>http://www.nnseek.com/e/de.comp.lang.iso-c++/l9schen_von_objekten_31606389t.html</guid>
	<link>http://www.nnseek.com/e/de.comp.lang.iso-c++/l9schen_von_objekten_31606389t.html</link>
	<description><![CDATA[Moin<br><br>> [zitierter Text ausgeblendet]<br>> <br>> int& func()<br>> {<br>>     int z = 17;<br>>     return z;<br>> > [zitierter Text ausgeblendet]<br>> <br>> und<br>>   int mz = func();<br>> bzw.<br>>   int& mz = func();<br>> <br>> meckert gcc in beiden Fällen zwar "warning: reference to local variable `z'<br>> returned".<br>Sollte mich auch wundern, wenn er es einmal nicht tut ;-)<br><br>> In ersterem Fall enthält aber mz immerhin 17, in letzterem Blödsinn.<br>> In Perl wird ein out-of-scope-Objekt erst gelöscht wenn es keine Referenz<br>> mehr darauf gibt. In C++ dürfte es anders sein (ja/nein?), also auch<br>> verständlich wenn die Sache schiefgeht.<br>In dem ersten Fall funtioniert das Beispiel, da gleich nach dem<br>Rücksprung noch der korrekte Wert auf dem Stack steht. Von der Referenz<br>wird der aktuelle Wert ausgelesen (17) und in nach mz kopiert. Ergo ist<br>das, was dann im folgenden mit dem Stack passiert egal.<br>In dem zweiten Fall merkst Du Dir die Referenz und sobald ein neuer<br>Funktionsaufruf stattfindet wird der Stack an der Stelle überschrieben<br>und dort stehen plötzlich "neue" Werte drin. C++ passt nie darauf auf,<br>was Du mit Speicher, Zeigern oder Referenzen machst. Es ist alles in der<br>Hand des Programmierers.<br><br>> Ist es dann nur Zufall bzw. compilerabhängig wenn mz im ersten Fall den<br>> korrekten Wert enthält?<br>Ich würde mich nicht darauf verlassen, dass das funktioniert (nicht<br>umsonst warnt dich der Compiler). Ich kenne mich mit dem Standard nicht<br>ganz so gut aus aber ich kann mir schon vorstellen, dass nicht gesagt ist,<br>was mit dem Stack, der frei wird passieren soll. Damit wäre es<br>compilerabhängig und kann sich jeder Zeit ändern.<br><br>Bernhard<br>
    <table border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="30">&nbsp;</td>
        <td>Posted In: <a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/">de.comp.lang.iso-c++</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/l9schen_von_objekten_31606389t.html"><b>1</b> Comment</a></td>
        <td width="20">&nbsp;</td>
        <td><a href="http://www.nnseek.com/e/de.comp.lang.iso-c++/l9schen_von_objekten_31606389m.html">Reply</a></td>
      </tr></table><br>]]></description>
	<pubDate>Fri, 05 Jan 2007 05:33:45 PST</pubDate>
</item>
</channel>
</rss>