Wonder what is wrong with my code? Am I forgotten how could I declare and initialize static member of a class?
class Configuration
{
private:
static b2Vec2 gravity(0.0f, -0.05f);
}
Should be. I am getting this error really scratching my head hard.
/home/kokhoe/workspacec/OpenGL2/header/Configuration.h:47:24: error: expected identifier before numeric constant
47 | static b2Vec2 gravity(0.0f, -0.05f);
| ^~~~
No. Not really. It has nothing to do with static or not. Just that I have forgotten the way to declare a class type member variable in object oriented way. The correct way of declaring a class type should be like this:
class Configuration
{
private:
static b2Vec2 gravity = b2Vec2(0.0f, -0.05f);
}
Somehow
b2Vec2 is a struct not class. This has cause the compilation error:
/home/kokhoe/workspacec/OpenGL2/header/Configuration.h:44:16: error: in-class initialization of static data member ‘b2Vec2 Configuration::gravity’ of non-literal type
44 | static b2Vec2 gravity = b2Vec2(0.0f, -0.05f);
| ^~~~~~~
Since
b2Vec2 is a struct, I remove the static keyword and it compile successfully.