(see #1) G++ seems to use different rules than sun for determining which operator is called. G++ gives an operator in the current namespace priority over another with more specific parameters in the global scope.
(see #2) G++ does something very strange. When the current namespace contains the same operator overloaded for completely different parameters, the precedence of other operators changes. In all cases Sun's compiler prints "child". -- Summary: inconsistent precedence of operators in namespaces Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: c dot hite at rtsgroup dot net GCC build triplet: c24d5e9bda8759e6c069ef5eafbb8fe0 GCC host triplet: gcc version 4.2.3 GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38005