Сообщение Re[3]: Вопрос по стандартному unique_ptr от 09.07.2023 6:00
Изменено 09.07.2023 6:07 rg45
Re[3]: Вопрос по стандартному unique_ptr
Здравствуйте, Shmj, Вы писали:
S>Благодарю. Чего-то протупил — поиском не нашел.
S>И можно еще вопрос. Вот в этом же классе есть:
S>
S>Зачем во friend добавляет сам себя? Вот что думает GPT- что это ошибка или недоразумение:
Смотри, это не просто класс, а шаблон класса, от которого можно произвести множество разных воплощений, которые не являются дружественными друг другу автоматически. Этим объявлением как раз и говорится, что все воплощения данного шаблона являются дружественными друг другу.
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- что это ошибка или недоразумение:
Смотри, это не просто класс, а шаблон класса, от которого можно произвести множество разных воплощений, которые не являются дружественными друг другу автоматически. Этим объявлением как раз и говорится, что все воплощения данного шаблона являются дружественными друг другу.
Re[3]: Вопрос по стандартному unique_ptr
Здравствуйте, Shmj, Вы писали:
S>Благодарю. Чего-то протупил — поиском не нашел.
S>И можно еще вопрос. Вот в этом же классе есть:
S>
S>Зачем во friend добавляет сам себя? Вот что думает GPT- что это ошибка или недоразумение:
Смотри, это не просто класс, а шаблон класса, от которого можно произвести множество разных воплощений, которые не являются дружественными друг другу автоматически. Этим объявлением как раз и говорится, что все воплощения данного шаблона являются дружественными друг другу.
P.S. Хорошо ли они делают — это вопрос, на самом деле. Лично я к таким объявлениям отношусь с настороженностью. Ведь с таким объявлением приватный доступ взламывается "на раз" путем добавления какой-нибудь специализации-пустышки. Когда у меня возникает соблазн написать подобное всеобъемлющее объявление дружбы, я превым делом проверяю, все ли у меня в порядке с дизайном.
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. Хорошо ли они делают — это вопрос, на самом деле. Лично я к таким объявлениям отношусь с настороженностью. Ведь с таким объявлением приватный доступ взламывается "на раз" путем добавления какой-нибудь специализации-пустышки. Когда у меня возникает соблазн написать подобное всеобъемлющее объявление дружбы, я превым делом проверяю, все ли у меня в порядке с дизайном.