I'm getting the following compile error...
error C2536: 'Player::Player::indices' : cannot specify explicit initializer for arrays
why is this?
header
class Player { public: Player(); ~Player(); float x; float y; float z; float velocity; const unsigned short indices[ 6 ]; const VertexPositionColor vertices[]; };
cpp
Player::Player() : indices { 3, 1, 0, 4, 2, 1 }, vertices{ { XMFLOAT3( -0.5f, -0.5f, -0.5f ), XMFLOAT3( 0.0f, 0.0f, 0.0f ) }, { XMFLOAT3( -0.5f, 0.5f, -0.5f ), XMFLOAT3( 0.0f, 0.0f, 1.0f ) }, { XMFLOAT3( 0.5f, -0.5f, -0.5f ), XMFLOAT3( 0.0f, 1.0f, 0.0f ) }, { XMFLOAT3( 0.5f, 0.5f, -0.5f ), XMFLOAT3( 0.0f, 1.0f, 1.0f ) } } { }
EDIT TO SHOW MY ATTEMPT AT std::array
std::array indices; std::array vertices;
can't get this to work either.
error C2661: 'std::array::array' : no overloaded function takes 6 arguments
and if I do this in my construct like the other post says:
indices( { 3, 1, 0, 4, 2, 1 } ), vertices ( { { XMFLOAT3( -0.5f, -0.5f, -0.5f ), XMFLOAT3( 0.0f, 0.0f, 0.0f ) }, { XMFLOAT3( -0.5f, 0.5f, -0.5f ), XMFLOAT3( 0.0f, 0.0f, 1.0f ) }, { XMFLOAT3( 0.5f, -0.5f, -0.5f ), XMFLOAT3( 0.0f, 1.0f, 0.0f ) }, { XMFLOAT3( 0.5f, 0.5f, -0.5f ), XMFLOAT3( 0.0f, 1.0f, 1.0f ) } } )
it crashes the compiler...
EDIT:: Victory!
I put them in my cpp file babeh:
const unsigned short Player::indices[ 6 ] = { 3, 1, 0, 4, 2, 1 }; const VertexPositionColor Player::vertices[ 4 ] = { { XMFLOAT3( -0.5f, -0.5f, -0.5f ), XMFLOAT3( 0.0f, 0.0f, 0.0f ) }, { XMFLOAT3( -0.5f, 0.5f, -0.5f ), XMFLOAT3( 0.0f, 0.0f, 1.0f ) }, { XMFLOAT3( 0.5f, -0.5f, -0.5f ), XMFLOAT3( 0.0f, 1.0f, 0.0f ) }, { XMFLOAT3( 0.5f, 0.5f, -0.5f ), XMFLOAT3( 0.0f, 1.0f, 1.0f ) } }