pImpl Idom noch zeitgemäß?
-
volkard schrieb:
pumuckl schrieb:
Zum Rohspeicher-Hack hat der GotW auch was geschrieben:
http://www.gotw.ca/gotw/028.htmDamals gab es noch kein C++11: bei 1. hat er also inzwischen unrecht. http://en.cppreference.com/w/cpp/types/aligned_storage
Die anderen Gründe sind schwach; man muß denRohspeicherhackInPlace-Pimpl ja nicht gerade ganz so roh aufführen.Genau.
Alignment ist kein Thema mehr.
Das suboptimale Runtime-Assert (sizeof etc.) kann man mittlerweile durch ein static_assert ersetzen.
Das "passt mal auf auf operator =" ist grundsätzlich richtig, trifft aber genau so auf normales PIMPeLn zu.Und... wenn ich wo "custom allocator" lese... pfuh.
Naja, gibt manchmal Fälle wo es wirklich Sinn macht/OK ist.
z.B. wenn ich davon ausgehen muss dass mein normaler Allocator thread-safe und auf "wenig Speicherverbrauch" optimiert ist. Wenn ich dann nen Custom-Allocator schreibe der nicht Thread-Safe ist, und nicht auf "wenig Speicherverbraucht" optimiert ist, dann kann das schon was bringen.
Im speziellen also ja, kann Sinn machen.
Im Allgemeinen halte ich Special-Case Allokatoren aber für ... Unfug.