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

           Summary: explicit conversion function return conversions not
                    restricted to qualifications
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: schaub.johan...@googlemail.com


n3225 only allows a qualification conversion for the return of an explicit
conversion function when converting to a non-class type:

struct A {
  explicit operator int();
};

int main() {
  bool b((A())); // should not work
  !A(); // should not work!
}

Both are not valid according to 13.3.1.5/1 (second case uses candidate function
provided by 13.6/23, for which the bool parameter uses contextual conversion).
GCC accepts both.

Reply via email to