Heim >Backend-Entwicklung >C++ >Wie kann ich in C 11 ein Constexpr-Array mit N Elementen erstellen?
In C 11 ist das Erstellen eines Constexpr-Arrays aus N Elementen nicht so einfach wie in späteren Versionen der Sprache . Obwohl constexpr-Arrays in C 11 eingeführt wurden, war ihre Funktionalität eingeschränkt, und es ist nicht möglich, constexpr-Arrays variabler Länge mit derselben Syntax wie in C 14 und höher zu erstellen.
Allerdings sind einige fortgeschrittene Techniken und constexpr-Funktionen ist es möglich, ähnliche Ergebnisse in C 11 zu erzielen. So geht's:
#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'; }
In diesem Beispiel definieren wir a constexpr-Funktion A
In der Hauptfunktion erstellen wir eine Instanz von A<4> und drucken Sie die Werte des Arrays aus. Da es sich bei dem Array um constexpr handelt, kann der Compiler seine Werte zur Kompilierungszeit ermitteln und so sicherstellen, dass keine Laufzeitberechnungen für das Array durchgeführt werden.
Dieser Ansatz ermöglicht es uns, constexpr-Arrays in C 11 zu erstellen, auch wenn die Syntax ist komplexer als in späteren Versionen der Sprache.
Das obige ist der detaillierte Inhalt vonWie kann ich in C 11 ein Constexpr-Array mit N Elementen erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!