Hab ich hier eventuell etwas nicht berücksichtigt?



  • gurru schrieb:

    Würde nicht auto_ptr aus der STL (memory) das selbe machen?

    hier is es etwas doof, da der pointer keinen op[] hat.(Ansonsten is es natürlich ok, wenn man mit dem vergleicht, was der threadstarter benutzt 😃 )



  • otze schrieb:

    gurru schrieb:

    Würde nicht auto_ptr aus der STL (memory) das selbe machen?

    hier is es etwas doof, da der pointer keinen op[] hat.(Ansonsten is es natürlich ok, wenn man mit dem vergleicht, was der threadstarter benutzt 😃 )

    Es wäre aber einfacher, die Klasse dann von auto_ptr abzuleiten, und dann darin den Operator[] zu definieren.



  • otze schrieb:

    Ansonsten is es natürlich ok, wenn man mit dem vergleicht, was der threadstarter benutzt 😃

    🙄
    das ist noch doofer, hier std::auto_ptr zu benutzen, als was threadstarter vorgeschlagt hat 😉
    Werf mal enen Blick in std::auto_ptr::~auto_ptr. Da findest zu sowas:

    ~auto_ptr() 
    {
      delete _M_ptr; 
    }
    

    ⚠ Das nennt sich Undefined behaviour, da hier operator delete [] benutzt werden muss. Also bitte boost::scoped_array anstatt std::auto_ptr benutzen!!!



  • gurru schrieb:

    Es wäre aber einfacher, die Klasse dann von auto_ptr abzuleiten, und dann darin den Operator[] zu definieren.

    😡



  • Es wäre aber einfacher, die Klasse dann von auto_ptr abzuleiten, und dann darin den Operator[] zu definieren.

    Ja ne is klar...



  • ssm schrieb:

    das ist noch doofer, hier std::auto_ptr zu benutzen, als was threadstarter vorgeschlagt hat 😉
    Werf mal enen Blick in std::auto_ptr::~auto_ptr. Da findest zu sowas:

    ~auto_ptr() 
    {
      delete _M_ptr; 
    }
    

    OK, das hab ich übersehen. (Also vergessen)


Anmelden zum Antworten