En C 11, créer un tableau constexpr de N éléments n'est pas aussi simple que dans les versions ultérieures du langage . Bien que les tableaux constexpr aient été introduits en C 11, leur fonctionnalité était limitée et il n'est pas possible de créer des tableaux constexpr de longueur variable en utilisant la même syntaxe qu'en C 14 et au-delà.
Cependant, en utilisant certaines techniques avancées et constexpr, il est possible d'obtenir des résultats similaires en C 11. Voici comment procéder :
#include <iostream> template<int N> struct A { constexpr A() : arr() { for (auto i = 0; i != N; ++i) arr[i] = i; } int arr[N]; }; int main() { constexpr auto a = A<4>(); for (auto x : a.arr) std::cout << x << '\n'; }
Dans cet exemple, nous définissons une fonction constexpr Un Dans la fonction principale, nous créons une instance de A<4> et imprimez les valeurs du tableau. Puisque le tableau est constexpr, le compilateur peut déterminer ses valeurs au moment de la compilation, garantissant ainsi qu'aucun calcul d'exécution n'est effectué pour le tableau. Cette approche nous permet de créer des tableaux constexpr en C 11, même si la syntaxe est plus complexe que dans les versions ultérieures du langage. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!