[Bug c++/79767] New: inline namespace and unqualified definition

nathan at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Mar 1 00:42:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79767

            Bug ID: 79767
           Summary: inline namespace and unqualified definition
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: nathan at gcc dot gnu.org
  Target Milestone: ---

Created attachment 40854
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40854&action=edit
exemplar

When an inline namespace provides a declaration, an unqualified definition in
the containing namespace will create a new definition rather than complete the
declaration.  This is contrary to the case when a qualified name is used naming
the containing namespace only.

The attached testcase will emit an error about an ambiguous overload of P --
Y::P vs Y::X::P.

Not sure if this is expected behaviour, but it surprised me.


More information about the Gcc-bugs mailing list