Problem mit fopen()



  • Wie war das noch? Man sollte keine fstreams als Member haben, oder so (hab ich ma gehört, hatte auch Probleme mit irgendsowas).

    ist mir neu. begründe mal.

    bool?

    istream



  • @volkard: zum ersten Punkt: habs vergessen
    zum zweiten: ah. erscheint logisch aber trotzdem sinnlos (wer macht schon getline(cin, s) >> i;?)



    1. Weil fstreams sich nicht kopieren lassen. Für Volkard ist das, wenn ich mich richtig erinnere, natürlich kein Grund, weil seine Klassen sich idR auch nicht kopieren lassen.

    2. Ist aber nicht logisch, ist sogar falsch, weil 'basic_istream<charT,traits>&' richtig ist.



  • @Daniel E.
    dann schreibt man einen nicht trivialen cctor und schon kann man kopieren

    class foo
    {
      std::ofstream bar;
    public:
      foo(const char *x) : bar(x) { }
      foo(const foo &obj)
       : bar(obj.bar.rdbuf())
      { }
    };
    


  • Original erstellt von kingruedi:
    dann schreibt man einen nicht trivialen cctor und schon kann man kopieren

    Dein Code ist so verdammt nichttrivial, dass nicht mal meine anwesende Compilersammlung ihn versteht.

    Dateideskriptoren geben (mir?) logisch keinerlei sinnvolle Kopiersemantik vor. Was soll man drunter verstehen? Schreiben 2 'kopierte' Dateihandler in die gleiche Datei? Schreibt erst mal Handler1, dann kommt Handler2 und macht alles wieder platt? [Bisher arbeite ich sowieso noch auf einer Datei; wieso sollte man das auf Programmiersprachenebene trennen?] Das Konzept 'copy' aka 'cp', dass man auf Dateiebene hat, macht etwas anderes, es vergibt einen neuen Namen.



  • Original erstellt von Mr. N:
    Man sollte keine fstreams als Member haben, oder so

    Und was spricht gegen eine Referenz auf einen fstream?

    [ Dieser Beitrag wurde am 27.04.2003 um 00:20 Uhr von nman editiert. ]



  • ein ding, das sinnvollerweise nen fstream als member hat, läßt sich sinnvollerweise auch nicht kopieren. sehe da kein problem.


Anmelden zum Antworten