Стандартный мандат enable_shared_from_this должен быть унаследован публично? Зачем?

Распространено наследование отenable_shared_from_this просто чтобы иметь возможность вернутьсяshared_ptrиз функций-членов в качестве основного намерения, без намерения разоблаченияenable_shared_from_this API в производном классе.

Так как использоватьenable_shared_from_this нужно делать это через публичное наследование (предписывает ли стандарт это? каково обоснование?), этого нельзя достичь иenable_shared_from_this API принудительно входит в публичный API производного класса.

Inherentingenable_shared_from_this в частном порядке и делаяshared_ptr класс друга работает на clang в сочетании с libc ++, но не работает с stdlibc ++.

посколькуprivate enable_shared_from_this + friend shared_ptr (или защищенное наследование), по-видимому, покрывает этот вариант использования, разве этого не должно быть достаточно по стандарту для подгонки в качестве решения проблемы «общего от этого»?

Ответы на вопрос(1)

Ваш ответ на вопрос