The following code must now use the plain scope resolution operator in order to
work with gcc4. Is it a regression or a conformance to the specs?
class Initializer ;
namespace NS {
class A {
// Now must use ::Initializer with gcc4 in order to compile
// If not, the following error occurs:
// error: 'static void NS::A::initialize()' is private
//
// Using Initializer works with gcc 3.4.3
friend class ::Initializer ;
static void initialize() {}
} ;
}
class Initializer {
public:
static void initialize() { NS::A::initialize() ; }
} ;
int main() {
Initializer::initialize() ;
return 0 ;
}
Frantz
--
Summary: friend class using plain scope resolution operator
Product: gcc
Version: 4.0.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: fmaerten at igeoss dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24654