keffer@SPERM.OCEAN.WASHINGTON.EDU (Tom Keffer) (12/13/89)
There seems to be a difference in interpretation between cfront 2.0 and g++ in whether a friend function has access to a private base class. The following code compiles without protest with cfront 2.0, but gives an error with g++ 1.36.1: class Base { }; class Derived : private Base { friend void foo(Derived& d); }; void func(Base&); void foo(Derived& d){ func(d); } Results: sperm[tmp]% g++ -c friend.cc friend.cc: In function void foo (class Derived &): friend.cc:11: type `Derived' is derived from private `Base' -tk --- Dr. Thomas Keffer | Internet: keffer@ocean.washington.edu Rogue Wave | BITNET: keffer%ocean.washington.edu@UWAVM Seattle, WA 98145 | uucp: uw-beaver!ocean.washington.edu!keffer (206) 523-5831 | Telemail: T.KEFFER/OMNET