Est-il possible de déclarer un tableau const (éventuellement constexpr
) à un endroit, puis de le définir à un autre endroit, un élément à la fois?
Par exemple.
extern constexpr int myArray[100];
myArray[0] = myConstexprFunction(0);
myArray[1] = myConstexprFunction(1);
// ...
myArray[100] = myConstexprFunction(100);
Ce que j'essaie de faire nécessitera quelque chose comme ça. Peut-être est-il possible d'utiliser des choses comme: http://b.atch.se/posts/constexpr-counter/
Mais si cette technique devient illégale dans la prochaine norme C++ (j'espère que non) j'aimerais en utiliser une plus sûre.
[EDIT] et si on assouplissait certaines exigences.. disons que je veux faire quelque chose comme ceci:
constexpr int myConstExprFunction(int arg) { return arg + 100;}
// autre code...
constexpr int a = myConstExprFunctionBegin(10);
constexpr int b = myConstExprFunction(20);
constexpr int c = myConstExprFunction(30);
constexpr int d = myConstExprFunctionEnd(40);
ce que je voudrais avoir, c'est que myConstExprFunctionEnd soit capable de générer un tableau final avec les valeurs créées par les fonctions précédentes. Tout cela bien sûr au moment de la compilation.
[EDIT2] Les solutions C++11 sont les bienvenues