   Strange enum error in my struct. (C++ VS2008)
  I'm wondering if this is a compile bug for VS2008 C++, because on my fLane variable in Projectile structure acts like Lane type isn't defined, but it's defined in player.h. I'm not sure if it's the way I placed, my header files, but I only placed header files I need from class and I use precompiled headers for window funcs and etc in the source files.1>Compiling...1>Player.cpp1>c:\users\andrew\desktop\space music windows\thearicle\laser.h(12) : error C2146: syntax error : missing ';' before identifier 'fLane'1>c:\users\andrew\desktop\space music windows\thearicle\laser.h(12) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int1>c:\users\andrew\desktop\space music windows\thearicle\laser.h(12) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int1>c:\users\andrew\desktop\space music windows\thearicle\laser.h(26) : error C2065: 'fLane' : undeclared identifier1>c:\users\andrew\desktop\space music windows\thearicle\laser.h(26) : error C2065: 'CENTER' : undeclared identifier1>c:\users\andrew\desktop\space music windows\thearicle\laser.h(40) : error C2061: syntax error : identifier 'Lane'1>laser.cpp1>c:\users\andrew\desktop\space music windows\thearicle\TheAricle.h(248) : error C2146: syntax error : missing ';' before identifier 'mp_Laser'1>c:\users\andrew\desktop\space music windows\thearicle\TheAricle.h(248) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int1>c:\users\andrew\desktop\space music windows\thearicle\TheAricle.h(248) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int1>.\laser.cpp(47) : warning C4018: '<' : signed/unsigned mismatch1>.\laser.cpp(65) : warning C4305: '-=' : truncation from 'double' to 'float'1>car.cpp1>c:\users\andrew\desktop\space music windows\thearicle\laser.h(12) : error C2146: syntax error : missing ';' before identifier 'fLane'1>c:\users\andrew\desktop\space music windows\thearicle\laser.h(12) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int1>c:\users\andrew\desktop\space music windows\thearicle\laser.h(12) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int1>c:\users\andrew\desktop\space music windows\thearicle\laser.h(26) : error C2065: 'fLane' : undeclared identifier1>c:\users\andrew\desktop\space music windows\thearicle\laser.h(26) : error C2065: 'CENTER' : undeclared identifier1>c:\users\andrew\desktop\space music windows\thearicle\laser.h(40) : error C2061: syntax error : identifier 'Lane'player.h#ifndef PLAYER_H#define PLAYER_H#include "Camera.h"enum Lane {SHOULDER = 0,LEFT,CENTER,RIGHT};//Player Class...#endiflaser.h#ifndef LASER_H#define LASER_H#include "player.h" //Lane Variable#include "Vector3.h" //Vector3 Struct#include "car.h"struct Projectile {LanefLane;bool fAlive;Vector3 fPosition;Vector3 fSPosition;Vector3 fDirection;intfAttackerId; //0 = No one, 1 = Player, 2 to etc = Foe floatfLife;Projectile() {fLife  = 2;fAlive = false;fLane = CENTER;fAttackerId = 0;fLife = 2;}};//Laser Class...#endifTheAricle.h#ifndef TheAricle_H#define TheAricle_H#include "laser.h"class Core {//Private Functions...public:// Variables...Laser  mp_Laser;//..};#endifAny ideas or questions?-Ajm   
  Check your headers for circular includes (i.e. header A #includes header B, and header B #includes header A).   ;  Always tackle the first error first, ignoring all others, I always say. Fix that one and you're very likely to fix many of the others, or more likely turn them into other ones... ;)I've seen errors like this if there is a semi-colon missing on the end of a class definition included in a earlier #include. So, I have a heavy suspicion about your Camera.h... could you post it?   ;  Tip: in 99.99% of cases, it's not a compiler bug - especially if you're using a modern, well known compiler such as MSVC.Like others have said, you should check for circular includes.   ;  Yep, in my camera .h I also included TheAricle.h which I believe would cause the problems and confusion.Thanks guys! :)   