Est-il possible de déclarer un tableau const (éventuellement constexpr
) en un point, puis de le définir à un autre endroit, un élément à la fois?Est-il possible de définir la valeur des éléments dans un tableau constexpr après la déclaration?
E.g.
extern constexpr int myArray[100];
myArray[0] = myConstexprFunction(0);
myArray[1] = myConstexprFunction(1);
// ...
myArray[100] = myConstexprFunction(100);
Ce que j'essaye de faire aura besoin de quelque chose comme ceci. Peut-être que c'est possible en utilisant des choses comme: http://b.atch.se/posts/constexpr-counter/
Mais si cette technique va être illégale dans la prochaine norme C++ (j'espère que non) je voudrais utiliser un plus sûr.
[EDIT] Au sujet de détente des besoins .. disons que je veux faire quelque chose comme ceci:
constexpr int myConstExprFunction(int arg) { return arg + 100;}
// other 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 est que le myConstExprFunctionEnd est capable de générer un tableau final avec les valeurs créées par les fonctions précédentes. Tout à la compilation bien sûr.
[EDIT2] 11 C++ solutions très bien accueillis
Avez-vous déjà essayé cela? Quelles erreurs avez-vous eu? –
@RichardCritten oui, bien sûr que j'ai essayé, mais je reçois différents types d'erreurs (.. a été précédemment déclaré ../déclaration contradictoire ... etc). La seule façon de faire quelque chose comme ça a été de manière récursive en utilisant la métaprogrammation de template – user3770392
En anglais, les phrases commencent par des majuscules. –