int _tmain(int argc, _TCHAR* argv[])
{
struct A
{
};
struct B
{
void f(A a)
{
A aa;//: error C2065: 'A' : undeclared identifier
}
};
A a;
B b;
b.f(a);
return 0;
}
Это проблема VC или не положено по стандарту?
Если по стандарту, то почему?
Если проблема, то у какого кмпилятора ее нет?
Здравствуйте Зазнобин Василий, Вы писали:
Глюк наверное.
Зато работает так:
void main()
{
struct A
{
};
struct B
{
typedef A A;
void F (A a)
{
A aa;
}
};
}
Здравствуйте DarkGray, Вы писали:
DG>Глюк наверное.
DG>Зато работает так:
DG>DG>void main()
DG>{
DG> struct A
DG> {
DG> };
DG> struct B
DG> {
DG> typedef A A;
DG> void F (A a)
DG> {
DG> A aa;
DG> }
DG> };
DG>}
DG>
Это, наверное, компилятор сэкономил. Мол, если класс не используется, нафига его компилить...
Здравствуйте Кодт, Вы писали:
К>Это, наверное, компилятор сэкономил. Мол, если класс не используется, нафига его компилить...
В смысле?
Такой код тоже компилится
void main()
{
struct A
{
};
struct B
{
typedef A A;
void f(A a)
{
A aa;//: error C2065: 'A' : undeclared identifier
}
};
A a;
B b;
b.f(a);
}
После вставки typedef-а все собирается