The following code is generating a linker error while compiling with Visual Studio 2013.
#define MAX_CONTROLLERS 4 class JoypadController { public: JoypadController() : m_is_connected(false), m_gamepad(0), m_instance_id(-1), m_haptic(0) {} int JoypadController::processEvent(const SDL_Event& event); private: SDL_GameController *m_gamepad; SDL_Haptic *m_haptic; SDL_JoystickID m_instance_id; bool m_is_connected; static JoypadController m_controllers[MAX_CONTROLLERS]; static int GetControllerIndex(SDL_JoystickID instance); void Open(int device); void Close(); }; static JoypadController m_controllers[MAX_CONTROLLERS];
1>joypad.obj : error LNK2001: unresolved external symbol "private: static class JoypadController * JoypadController::m_controllers" (?m_controllers@JoypadController@@0PAV1@A)
Is this valid for the class JoypadController to use itself as a type? Am I missing something simple in my linker?