Bonjour,
il y a une petite subtilité qui m'échappe dans la classe std::array telle qu'elle est fournie dans la distribution de Visual Studio 2010. Concrètement, elle est déclarée comme ceci (j'ai simplifié pour plus de lisibilité) :
Je ne comprends pas ce qui se passe lorsqu'on instancie un nouvel array d'une taille suffisamment grande pour que _Elems ne soit pas allouable (plus assez de mémoire vive). Comment ce cas est-il géré ici?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #ifndef _ARRAY_ #define _ARRAY_ template<class _Ty, size_t _Size> class array { // fixed size array of values public: enum {_EEN_SIZE = _Size}; // helper for expression evaluator _Ty _Elems[_Size == 0 ? 1 : _Size]; }; #endif /* _ARRAY_ */
J'ai une autre question : à quoi sert l'énumération ici? Le commentaire semble indiquer que cela aide à l'évaluation de l'expression _Size mais cela m'échappe un peu.
Merci à tous pour votre aide!
Partager