Gibt es eine dynamische Variante boost::array
die Array mit variabler Länge C99 die Verwendung (VLA) intern, wenn verfügbar (GCC) und heapbasierten sonst?variabler Länge Array C++ Wrapper Container
1
A
Antwort
2
boost::array
funktioniert basierend auf einem Vorlagenparameter. Vorlagenparameter können keine Laufzeitwerte sein. Also nein.
Außerdem gelten VLAs nur für Arrays, die auf dem Stack deklariert sind (ObjType val[someInteger];
). Sie gelten nicht innerhalb Objekte deklariert Arrays (struct ObjType { int val[someInteger]; };
. Also selbst wenn ein Template-Parameter ein Laufzeitwert sein könnte, es würde dir nicht helfen.
Wenn Sie keinen Heapzuordnung leisten können, nur verwenden std::vector
mit einem Allokator, der aus einem "Stack" von zuvor zugewiesenen Speicher zieht.
Verwandte Themen
- 1. Array variabler Länge
- 2. variabler Länge Argumente C#
- 3. variabler Länge Array zu Array konstant gefaltet
- 4. Warum konvertiert mein Array variabler Länge nicht?
- 5. Array variabler Länge in Numpy C-Erweiterung zurückgeben?
- 6. Marshal eine C-Struktur mit einem Array variabler Länge
- 7. Iterieren durch ein Java-Array variabler Länge
- 8. byte [] Array zu Struktur mit Array variabler Länge
- 9. Java. Instanz variabler Länge
- 10. Lookback mit variabler Länge
- 11. Cypher variabler Länge Pfadoptimierung
- 12. C++ verbietet Array variabler Größe
- 13. Array-Deklaration variabler Länge in OpenCL nicht erlaubt - warum?
- 14. Verhalten der sizeof auf Arrays mit variabler Länge (nur C)
- 15. Array-Länge Variable - c
- 16. Array Länge in C
- 17. Schwierigkeit beim Verständnis Arrays variabler Länge in C
- 18. Ganzzahlige Codierung mit variabler Länge
- 19. Oracle SQL TO_CHAR variabler Länge
- 20. Java mehrere variabler Länge Argument
- 21. variabler Länge MATLAB Argumente Variable
- 22. Freie Liste mit variabler Länge
- 23. Können wir ein Strukturelement vom Typ Array variabler Länge haben?
- 24. Alloca/Arrays mit variabler Länge in Rust?
- 25. Unterschied zwischen Container und Wrapper
- 26. Konvertieren Sie jede Art von Array in Byte [] mit variabler Länge in C#
- 27. Variable Länge Array Speicherplatz in C/C++
- 28. SQL Loader Fehler: "Feld mit variabler Länge überschreitet maximale Länge."
- 29. Sind Arrays mit variabler Länge in C90 wirklich nicht erlaubt?
- 30. Parsen einer Nachricht mit variabler Länge
Bietet STL, Boost oder andere einen solchen stack-like Allokator oder muss ich es selbst schreiben? –
Ich glaube, die STL bietet nur ' std :: allocator ", die' new' und 'delete' verwendet. Boost stellt einige Zuweiser zur Verfügung, einschließlich eines gepoolten Speicherzuweisers (http://www.boost.org/doc/libs/1_49_0/libs/pool/doc /html/index.html), die tun können, was Sie wollen, sonst werden Sie hav e um es zu schreiben. –