Ist das Standardmandat enable_shared_from_this öffentlich zu vererben? Warum
Es ist üblich, von @ zu erbenable_shared_from_this
nur um in der Lage zu sein, @ zurückzukehrshared_ptr
's vom Mitglied fungiert als primäre Absicht, ohne die Absicht, @ offenzulegeenable_shared_from_this
API in der abgeleiteten Klasse.
Seit @ nutzenable_shared_from_this
man muss dies durch öffentliche Vererbung tun (schreibt der Standard dies vor? Was ist das Grundprinzip?), dies kann nicht erreicht werden undenable_shared_from_this
API wird in die öffentliche API der abgeleiteten Klasse gezwungen.
Inherentingenable_shared_from_this
privat und machenshared_ptr
Eine Friend-Klasse arbeitet mit Clang in Verbindung mit libc ++, aber nicht mit stdlibc ++.
Schon seitprivate enable_shared_from_this
+ friend shared_ptr
(oder eine geschützte Vererbung) scheint diesen Anwendungsfall abzudecken. Sollte es nach dem Standard nicht ausreichen, um eine Anpassung als Lösung für das "aus diesem Grund" -Problem vorzunehmen?