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

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-04-16 
11:10:07 UTC ---
Maybe the most widely used term is "compiler-generated" but I prefer implicity
defined.

(In reply to comment #2)
> * Do not show "In member function", it clutters the output and it is 
> duplicated
> info because they are already mentioned in the note. 

I'm not sure about this suggestion.  

/home/redi/gcc/4.x/include/c++/4.8.0/bits/ios_base.h: In member function
'std::basic_ios<char>& std::basic_ios<char>::operator=(const
std::basic_ios<char>&)':

This is useful info, it tells me the (implicitly-defined) context in which the
private operator= was needed.

/home/redi/gcc/4.x/include/c++/4.8.0/bits/ios_base.h:791:5: error:
'std::ios_base& std::ios_base::operator=(const std::ios_base&)' is private
     operator=(const ios_base&);
     ^

This is useful, it's the private operator= that was needed, but inaccessible.

In file included from /home/redi/gcc/4.x/include/c++/4.8.0/ios:45:0,
                 from /home/redi/gcc/4.x/include/c++/4.8.0/istream:40,
                 from /home/redi/gcc/4.x/include/c++/4.8.0/fstream:40,
                 from f.cc:1:
/home/redi/gcc/4.x/include/c++/4.8.0/bits/basic_ios.h:64:11: error: within this
context
     class basic_ios : public ios_base
           ^

The caret diagnostic is useless here, because an implictly-defined function has
no location.

Reply via email to