------- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-02 14:14
-------
I think this is correct and here is why:
auto_ptr<vector<int> > res1 = ert(); // OK <-- we call the copy construtor so we
increment the
refence
vector<int>& res2 = *res1; // OK <-- this is reference already
vector<int> *res3 = ert().get(); // NOK <-- we don't increment the reference
so we will free it
right after this statement has been executated
vector<int>& res4 = *(ert()); // NOK if res5 not created afterwards
<---- same as above
vector<int>& res5 = *(ert().release());// OK
<--- should have caused an exeception as you are already freed it
temporary return values only last untill the statement is finished.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18272