In:
struct bar {};
void foo1() {
    bar& b = bar();
    }
void foo(bar& b = bar()) {}

you get:
~/ootbc/members/src$ g++ foo.cc
foo.cc: In function `void foo1()':
foo.cc:3: error: invalid initialization of non-const reference of type 'bar&'
from a temporary of type 'bar'
foo.cc: At global scope:
foo.cc:5: error: default argument for `bar&b' has type `bar'

for essentially the same error. The second diagnostic is distinctly inferior

Ivan

-- 
           Summary: poor diagnostic
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: igodard at pacbell dot net
                CC: gcc-bugs at gcc dot gnu dot org


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

Reply via email to