c++ - Name lookup: default arguments
- Christof Meerwald (42/42) Dec 31 2002 struct A
struct A { A(int i = val) // Error: undefined identifier 'val' { } static const int val = 0; }; int main() { A a; return 0; } See 3.3.6 Class scope [basic.scope.class], paragraph 1, of the C++ standard. Also see 8.3.6 Default arguments [dcl.fct.default], paragraph 9, of the C++ standard for another example. It's rather low priority, but it can be annoying if incorrect code is generated instead of an error, e.g.: #include <stdio.h> struct A { static const int val = 1; }; struct B : public A { B(int i = val) { printf("%d\n", i); } static const int val = 0; }; int main() { B b; return 0; } When compiled with DMC, the program prints "1" instead of "0". bye, Christof -- http://cmeerw.org JID: cmeerw jabber.at mailto cmeerw at web.de ...and what have you contributed to the Net?
Dec 31 2002