Utiliser boost :: mpl, je peux créer un typedef d'un vecteur à trois éléments comme suit:boost :: mpl for_each avec Array normal 'C'
typedef boost::mpl::vector_c<int,1,2,3> height_t;
je peux tirer les valeurs de ce typedef avec la snippit suivante:
std::vector<int> height;
boost::mpl::for_each<height_t>(boost::bind(&std::vector<int>::push_back, &height, _1));
assert(height[0] == 1);
assert(height[1] == 2);
assert(height[2] == 3);
Je me demande s'il y a un moyen de faire la même chose mais avec un tableau « C » normale au lieu d'un std::vector
. Malheureusement, je ne peux pas utiliser les conteneurs STL dans ce projet.
uint32_t height[3];
boost::mpl::for_each<height_t>(????, &height, _1));
Je soupçonne que j'ai besoin de remplacer le ???? avec une autre clause de liaison. Des idées?
Ceci ne doit pas être étiqueté 'C'. C et C++ sont des langues différentes. –
Vous pouvez retag it Alok. –