2017-04-11 4 views
0

J'utilise constexpr pour déclarer la taille de std :: array.utilise constexpr pour déterminer la taille du pointeur de tableau

constexprt auto sizearr = 99; 

Sur la base de la déduction de type compilation sur sizearr Je veux trouver le type d'index utilisé pour itérer tableau

char offset; //Class member 

quand sizearr changé

constexprt auto sizearr = 65000; 

Je veux décalage à l'auto déclarée comme type de int au lieu de changer manuellement en int.

Je suppose qu'il doit y avoir moyen de mélanger auto, decltype et constexpr pour ce faire.

+4

est-ce pas le type de l'indice 'std :: array' toujours' std :: size_t'? http://en.cppreference.com/w/cpp/container/array – jwimberley

Répondre

0

Utilisez log2 (arraySize)/8 (cast int) comme paramètre de modèle non de type N.

Le modèle est un modèle de structure qui définit un type que vous avez besoin.

partielle basée sur spécialisent valeur de N.