de longueur variable std::array comme

Comme à mon habitude utilisé compilateurs C++ permettent de longueur variable des tableaux (par exemple. les tableaux en fonction de l'exécution de la taille), je me demande si il y a quelque chose comme std::array avec la variable de la taille? Bien sûr std::vectorest de taille variable, mais il alloue sur le tas, et les redistribue sur le besoin.

Je tiens à avoir une pile allouée tableau avec la taille définie au moment de l'exécution. Est-il std-modèle qui peut cette fonctionnalité? Peut-être l'aide d' std::vector fixe la taille maximale?

Lors de l'utilisation de std::array, la taille de la matrice est un paramètre du modèle, de sorte qu'il ne peut pas être une variable d'exécution. Je suppose que std::vector est votre meilleur pari.
Car il n'y a pas de "pile" dans la langue standard, il est difficile de faire de cette question précise, ou de faire sens.
Meh. Il serait assez bizarre verrue sur le système de type pour faire une telle notion précise. Vous pouvez voir les efforts-vous dans l'historique de la révision sur Github. Jusqu'à présent, l'idée est que "il n'y a pas assez d'expérience" avec ce, donc c'est reporté.
La réponse habituelle est d'utiliser std::vector avec un allocateur personnalisé. Puisque vous pensez que les données pour être situé "sur la pile", sans doute qu'ils vont toujours être libéré dans l'ordre inverse ils sont affectés. Il devrait être assez facile à écrire un extrêmement rapide thread local de l'allocateur compte tenu de cette restriction. L'inconvénient est que vous allez faire une attribution distincte à l'avant pour stocker les données, mais ce n'est pas si différent de ce que l'OS fait pour votre pile du thread sur un système d'exploitation moderne de votre bloc est virtuel-seulement jusqu'à l'utilisation, tout comme la pile. Mais il ne bénéficiez pas de la pile en cours à chaud dans le cache.
Que voulez-vous dire, il n'y a pas de "pile"? Stockage automatique se comporte comme une pile, et la langue spec parfois se réfère à elle comme une pile (par exemple, "le déroulement de pile" lorsqu'une exception est levée), alors pourquoi ne pas appeler cela une pile?

OriginalL'auteur dronus | 2013-12-31