Bonjour à tous,

Je suis face à un problème que je ne comprends pas. Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#ifndef GRAPHIC_RENDERING_HPP_INCLUDED
#define GRAPHIC_RENDERING_HPP_INCLUDED
 
#define GAME_GRAPHIC_LAYER_COUNT = 5
 
#include "singleton.hpp"
 
// -- Predeclarations --
 
class Game;
 
namespace Graphic
{
    class Layer;
}
 
namespace sf
{
    class RenderWindow;
}
 
/////////////////////////
 
namespace Graphic
{
    class RenderingList : public StaticSingleton
    {
        friend class Game;
 
    public :
 
        static Layer& layer( std::size_t index );
 
    private :
 
        static sf::RenderWindow * the_renderer;
        static Layer the_layers[GAME_GRAPHIC_LAYER_COUNT]; // error C2143
        static void set_renderer( sf::RenderWindow &renderer );
        static void render( void );
    };
}
 
/////////////////////////
 
#endif // GRAPHIC_RENDERING_HPP_INCLUDED
La ligne posant problème, est indiquée dans le code.
J'ai modifié le code, en enlevant les pré-déclarations, et en incluant directement les fichiers mais, l'erreur est toujours là.
Le compilateur (MVC++ 2008), indique ces messages :
1>rendering.hpp(37) : error C2143: syntax error : missing ']' before '='
1>rendering.hpp(37) : error C2864: 'Graphic::RenderingList::the_layers' : only static const integral data members can be initialized within a class
1>rendering.hpp(37) : error C2143: syntax error : missing ';' before ']'
1>rendering.hpp(37) : error C2238: unexpected token(s) preceding ';'
Le design de la classe est discutable, mais là n'est pas le problème. J'aimerai juste comprendre l'erreur.

Si, vous avez besoin de plus d'informations, faites-moi signe.

Merci d'avance !

Au revoir,