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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 class MaSuperClasse { ... inline MaSuperClasse(const std::size_t &size) { std::array<int, size> monmagnifiquetableau; }; };Je vous remercie tous d'avance pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 const std::size_t size = 1; MaSuperClasse masuperinstance(size);
Partager