[Bug c++/26040] New: funny ::std::ostream behavior when using a temporary

Raimund dot Merkert at baesystems dot com gcc-bugzilla@gcc.gnu.org
Tue Jan 31 01:17:00 GMT 2006


I'm having trouble understanding what's going on here. Is this a bug in G++ or
possible is the C++ standard a little bit funny, or is it STL? 
Perhaps, the result of this code undefined due to the temporary?

I would have expected as output 
Hello
Hello


The rationale for this example is the following: I'd like to write a log class
that extends an ostream and I want to use roughly like this:
LogEntry(INFO) << "MyMessage" << LogEntry::commit;




#include <sstream>
#include <iostream>

int main()
{
  ::std::ostringstream ss;
  ss << "Hello" ;
  ::std::cerr << ss.str() << ::std::endl;

  ::std::string s = static_cast< ::std::ostringstream&>(::std::ostringstream()
<< "Hello2").str();
  ::std::cerr << s << ::std::endl;

  return 0;
}


-- 
           Summary: funny ::std::ostream behavior when using a temporary
           Product: gcc
           Version: 4.0.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: Raimund dot Merkert at baesystems dot com


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



More information about the Gcc-bugs mailing list