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








Christof Meerwald <cmeerw web.de>