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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage