Problème de variables constantes
Bonjour à tous,
Programmeur depuis plusieurs années sur des langages haut niveau (comme Python ou PHP) j'essaie de me mettre au C++. Jusqu'à présent c'était compliqué mais je m'en sortais, jusqu'à ce que j'essaie de travailler avec des tableaux statiques. Je vous explique mon problème : j'ai une classe à qui je souhaite transmettre en paramètre (par le constructeur) une donnée parfaitement constante (un std::size_t fixé dans le code) pour qu'elle l'utilise pour créer un tableau statique (std::array). J'ai tout essayé, jusqu'au const std::size_t* const mais toujours la même erreur "Non-type template argument is not a constant expression"... Bien sûr, je sais que je peux contourner, passer directement le tableau en référence ou essayer une template mais ma curiosité intellectuelle me force à me tourner vers vous, fins connaisseurs, pour savoir ce que je rate : en substance, comment faire pour préserver le caractère constant d'une variable en la passant à une fonction.
Je vous mets un exemple de ce que j'essaie de faire :
Code:
1 2 3 4 5 6 7
|
class MaSuperClasse {
...
inline MaSuperClasse(const std::size_t &size) {
std::array<int, size> monmagnifiquetableau;
};
}; |
Code:
1 2 3
|
const std::size_t size = 1;
MaSuperClasse masuperinstance(size); |
Je vous remercie tous d'avance pour votre aide !