Re[3]: Вопрос по стандартному unique_ptr
От: rg45 СССР  
Дата: 09.07.23 06:00
Оценка: 4 (1) +2
Здравствуйте, Shmj, Вы писали:


S>Благодарю. Чего-то протупил — поиском не нашел.


S>И можно еще вопрос. Вот в этом же классе есть:


S>
S>template <class _Ty, class _Dx>
S>class unique_ptr
S>{
S>// ...
S>private:
S>    template <class, class>
S>    friend class unique_ptr;
S>};
S>


S>Зачем во friend добавляет сам себя? Вот что думает GPT- что это ошибка или недоразумение:


Смотри, это не просто класс, а шаблон класса, от которого можно произвести множество разных воплощений, которые не являются дружественными друг другу автоматически. Этим объявлением как раз и говорится, что все воплощения данного шаблона являются дружественными друг другу.

P.S. Хорошо ли они делают — это вопрос, на самом деле. Лично я к таким объявлениям отношусь с настороженностью. Ведь с таким объявлением приватный доступ взламывается "на раз" путем добавления какой-нибудь специализации-пустышки. Когда у меня возникает соблазн написать подобное всеобъемлющее объявление дружбы, я превым делом проверяю, все ли у меня в порядке с дизайном.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 09.07.2023 6:07 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.