www.digitalmars.com Home | Search | C & C++ | D | DMDScript | News Groups | index | prev | next
Archives

D Programming
D
D.gnu
digitalmars.D
digitalmars.D.bugs
digitalmars.D.dtl
digitalmars.D.dwt
digitalmars.D.announce
digitalmars.D.learn
digitalmars.D.debugger

C/C++ Programming
c++
c++.announce
c++.atl
c++.beta
c++.chat
c++.command-line
c++.dos
c++.dos.16-bits
c++.dos.32-bits
c++.idde
c++.mfc
c++.rtl
c++.stl
c++.stl.hp
c++.stl.port
c++.stl.sgi
c++.stlsoft
c++.windows
c++.windows.16-bits
c++.windows.32-bits
c++.wxwindows

digitalmars.empire
digitalmars.DMDScript
electronics



c++ - BUG: typedef not visible for friend?

↑ ↓ ← Roland Pibinger <rpbg123 yahoo.com> writes:
The following code compiles with current compilers (Comeau C/C++ 4.3.9, VS
8.0) but produces an error with DMC (which may or may not be a bug):

operating system: Win2000
compiler: DMC v849

class A {
public:
  static bool foo () { return true; }
};


class B {
  typedef A AClass;
public:
  friend bool exec1 (const B& b) { return A::foo(); }  // ok
  friend bool exec2 (const B& b) { return AClass::foo(); } // error in line 11
};


int main() {
  B b;
  exec1 (b);
  exec2 (b);
}

dmc_bug.cpp(11) : Error: undefined identifier 'AClass'

Best regards,
Roland Pibinger
May 04 2007
↑ ↓ → Roland Pibinger <rpbg123 yahoo.com> writes:
DMC seems to have a general problem with friend functions. Another example:

class C {
  static void foo() {}
public:
  friend void bar(const C& c) { foo(); } // error
};

dmc_bug.cpp(17) : Error: undefined identifier 'foo'
May 05 2007