valarray (slice_array) problem oder gcc problem, oder noch nicht korrigierter stroustrup fehler?



  • Also meiner bescheidenen Meinung nach ist da was total kaputt.

    Oder dieser ganze valarray-Kram lässt sich schlicht nicht mit reinem C++ implementieren.



  • der Standard sagt nicht, dass slice_array keine friends haben darf. beim gcc sieht der private-Teil von slice_array so aus:

    private:
        friend class valarray<_T>;
        slice_array(_Array<_T>, const slice&);
    
        const size_t     _M_sz;
        const size_t     _M_stride;
        const _Array<_T> _M_array;
    
        // this constructor is implemented since we need to return a value.
        slice_array (const slice_array&);
    
        // not implemented
        slice_array ();
        slice_array& operator= (const slice_array&);
    

    (wie die Standardleute sich das ohne implementierten copy-ctor gedacht haben ist eine andere Frage)

    ok dann hat sich das wohl erledigt



  • z.b. gcc 3.3 implementierung:

    // This constructor is implemented since we need to return a value.
          slice_array(const slice_array&);
    
    friend class valarray<_Tp>;
          slice_array(_Array<_Tp>, const slice&);
    

    wo steht, das slice_array keine freunde haben darf?
    im standard steht dabei: remainder implementation defined. das reicht dohc, nicht



  • der Standard sagt nicht, dass slice_array keine friends haben darf.

    wo steht, das slice_array keine freunde haben darf?

    Jaja. Ihr habt recht. Es ist spät und ich bin der Antifrosch wenn's ums Lesen und verstehen des Holy-Standards geht.



  • aber mit dem copy ctor hattet ihr recht 🙂



  • *** blubb *** spätnachts kann man die Augen nicht mehr so gut offenhalten



  • vergiss die anderen Frauen, die bleiben alle auf der Strecke. 👎



  • vielleicht einfach mal bei comp.std.c++ nachfragen, was die da so denken?



  • Na gut, mal Zeit, mich wieder zu melden. Wen es noch interessiert:
    Im Defekt Report steht was
    und Mr. Stroustrup meint, dass er den Fehler solange nicht korrigieren will, bis das Standardkomittee das mit valarray löst.



  • Helium schrieb:

    vielleicht einfach mal bei comp.std.c++ nachfragen, was die da so denken?

    ich nehme an, die duerften eine aehnliche meinung wie josuttis haben: valarray ist (bei den momentanen vorgaben) sinnlos.
    ich nehme aber an, dass in C++0x valarray mittels expression templates implementiert werden wird (so dass valarray endlich das kann, was es koennen soll) - wenn die zeit gereicht haette, waere das ja schon bei C++98 passiert.


Anmelden zum Antworten