2017-09-25 3 views
2

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?

+0

oops, ich löschte meine falsche Antwort, eine Copy-Paste-Horrorgeschichte ... (zögern Sie nicht, stimmen Sie mich ab ... :)) –

+1

Ja, http://www.open-std.org/jtc1/ sc22/wg21/docs/papers/2016/p0035r4.html hat den Text entfernt, der die Implementierung definiert hat. –

+0

@MassimilianoJanes Egal, ich habe den Abschnitt in N4659 (C++ 17 DIS) gefunden. – Jamboree

Antwort

3

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.

+0

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 ... –

+0

@MassimilianoJanes Ich habe es bei https://github.com/timsong-cpp/cppwp, nicht sicher, der auf www.open-std.org. – Jamboree

+0

ok lesen Marc Glisses Kommentar ist klar, dass Sie Recht haben (gut zu wissen, dass die Zuordnungsfunktionen jetzt auch einen Ausrichtungsparameter benötigen). –

Verwandte Themen