C++ 17 führt std::aligned_alloc
und Alignment-Aware new
, die über Alignment Alignments tun können, aber was ist mit std::allocator
? Behandelt es übergeordnete Typen?Behandelt std :: allocator in C++ 17 übergeordnete Typen?
Antwort
In N4659 (C++ 17 DIS), 23.10.9.1 [allocator.members], bullet 2
T * zuzuteilen (size_t n);
Rückgabewert: Ein Zeiger auf das Anfangselement eines Speicherarrays der Größe n * sizeof (T), , passend für Objekte des Typs T ausgerichtet.
Vergleich zu C++ 14, der Satz
Es wird die Implementierung definiert, ob über justierten Typen
wurde entfernt, unterstützt werden. So sollte std::allocator
übergeordnete Typen in C++ 17 unterstützen.
uhm, N4659 (die pdf-Version, die ich bei www.open-std.org gefunden habe) liest immer noch wörtlich wie meine ursprüngliche Antwort, das ist, dass übergeordnete Typen Unterstützung Implementierung ist definiert ... –
@MassimilianoJanes Ich habe es bei https://github.com/timsong-cpp/cppwp, nicht sicher, der auf www.open-std.org. – Jamboree
ok lesen Marc Glisses Kommentar ist klar, dass Sie Recht haben (gut zu wissen, dass die Zuordnungsfunktionen jetzt auch einen Ausrichtungsparameter benötigen). –
- 1. Warum hat std :: allocator Membertypen/Funktionen in C++ 17 verloren?
- 2. Std :: back_insert_iterator in C++ 17
- 3. Freigabe mit std :: allocator
- 4. Speicherverwaltung & std :: allocator
- 5. C++ 17 std :: optional in G ++?
- 6. std :: map :: insert Änderung in C++ 17
- 7. Veraltet std :: is_literal_type in C++ 17
- 8. std :: in_place_t und Freunde in C++ 17
- 9. C++ Vektor allocator Fehler
- 10. ausplanen von allocator in C++
- 11. std :: allocator ausplanen Teil des Speichers
- 12. Warum sind std :: allocator :: construct und std :: allocator :: destroy auf Elementtyp Templated?
- 13. Keine implizite Konvertierung von std :: string std :: string_view in C++ 17 (war in std :: Versuch :: basic_string_view)
- 14. Warum nicht von std :: erben allocator
- 15. Wie verwende ich std :: min_element in C++ 17?
- 16. Warum ändert Operator() für Std :: Funktion in C++ 17?
- 17. std :: addressof als konstanter Ausdruck in C++ 17
- 18. Wie zu aktivieren/Std: C++ 17 in VS2017 mit CMake
- 19. 'for_each_n' ist kein Mitglied von 'Std' in C++ 17
- 20. C++ 17-fache Ausdruckssyntax?
- 21. C++ Vorlage mit Karte allocator Problem
- 22. Wie std :: allocator in meiner eigenen Container-Klasse verwenden
- 23. C++ 17 Klassenvorlage Teilabzug
- 24. Von boost zu std :: experimental und weiterhin C++ 17
- 25. C++ - std :: enable_if für mehr Typen
- 26. Wird der C++ 17-Standard "std :: byte" enthalten?
- 27. C++ 17 Ausdruck Auswertung Reihenfolge und Std :: move
- 28. C++ 17: Lambda zu std :: Funktion Umwandlung fehlgeschlagen
- 29. BSON Typen und Std :: Chrono
- 30. std :: min std :: Chrono :: Dauer verschiedenen Typen
oops, ich löschte meine falsche Antwort, eine Copy-Paste-Horrorgeschichte ... (zögern Sie nicht, stimmen Sie mich ab ... :)) –
Ja, http://www.open-std.org/jtc1/ sc22/wg21/docs/papers/2016/p0035r4.html hat den Text entfernt, der die Implementierung definiert hat. –
@MassimilianoJanes Egal, ich habe den Abschnitt in N4659 (C++ 17 DIS) gefunden. – Jamboree