------- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-10 15:37 ------- In 3.4 and above, I get: t4.cc:16: error: ambiguous overload for operator>> in Temp >> (int)Val /home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/istream: 131: note: candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:: operator>>(std::basic_istream<_CharT, _Traits>& (*)(std::basic_istream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>] <near match> /home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/istream: 134: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:: operator>>(std::basic_ios<_CharT, _Traits>& (*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>] <near match> /home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/istream: 137: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:: operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char, _Traits = std::char_traits<char>] <near match> /home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/istream: 230: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:: operator>>(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = char, _Traits = std:: char_traits<char>] <near match>
I don't think this is valid code. Actually it is not, you are invoking one of the bad extensions in GCC which was removed for 3.4 called the lvalue extension. So this was fixed to reject the code in 3.4.0. -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Component|c++ |libstdc++ Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23317