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;
    };
};
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
const std::size_t size = 1;
MaSuperClasse masuperinstance(size);
Je vous remercie tous d'avance pour votre aide !