[Bug c++/36587] Feature: add warning for constructor call with discarded return.

jwakely dot gcc at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Dec 11 10:39:00 GMT 2009



------- Comment #5 from jwakely dot gcc at gmail dot com  2009-12-11 10:39 -------
(In reply to comment #4)
> > But I'm not convinced that doing this is always a mistake.
> 
> Since we don't care about the object, we must care about the constructor side
> effect. I seem to be under the impression that ISO C++ allows the construction
> of temporary objects to be optimized away---even if there are side effects in
> the constructor or destructor! Therefore, it's hard to see a valid use case for
> this.

Certain temporaries (such as those created during copying or reference binding)
can be optimised away, I don't think it's true of temporaries created
explicitly like this.  e.g. I think this should work:

std::ofstream("lockfile");  // creates ./lockfile if it doesn't exist

(assuming write permission in the directory, and ignoring races and other
reasons it might be a bad idea)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36587



More information about the Gcc-bugs mailing list