Size: a a a

2021 February 12

MK

Mikhail Kalugin in pro.cxx
Спасибо
источник

Д

Дмитрий in pro.cxx
привет всем! подскажите, пожалуйста, почему этот код не компилируется на clang ? gcc, msvc нормально компилит https://godbolt.org/z/dbnPqv
источник

AT

Alexey Tkachenko in pro.cxx
а сообщение компилятора читал?
источник

Д

Дмитрий in pro.cxx
Alexey Tkachenko
а сообщение компилятора читал?
Но там friend написано
источник

AT

Alexey Tkachenko in pro.cxx
Дмитрий
Но там friend написано
а если внимательнее посмотреть, кто кому friend?
источник

Д

Дмитрий in pro.cxx
Alexey Tkachenko
а если внимательнее посмотреть, кто кому friend?
Так protected поля доступны наследнику, разве если этому наледнику написать friend <name class>
То friend классу не должны быть доступны эти поля?

То есть, остальные компиляторы работают некорректно в данном случае?
источник

D

Danya in pro.cxx
Alexey Tkachenko
а если внимательнее посмотреть, кто кому friend?
Кажется, там всё правильно написано)
источник

D

Danya in pro.cxx
Ещё одно странное поведение кланга)
источник

D

Danya in pro.cxx
Сколько багов можно найти с легаси кодом :D
источник

D

Danya in pro.cxx
Лечится конечно просто, написав friend class Base; в Test, но всё равно неприятно
источник

T

Ternvein in pro.cxx
Дмитрий
Так protected поля доступны наследнику, разве если этому наледнику написать friend <name class>
То friend классу не должны быть доступны эти поля?

То есть, остальные компиляторы работают некорректно в данном случае?
источник

T

Ternvein in pro.cxx
Всё равно считаю, что шланг не прав, потому как явное указание области видимости не должно влиять.
источник

AD

Andrey Davydov in pro.cxx
Ternvein
Всё равно считаю, что шланг не прав, потому как явное указание области видимости не должно влиять.
явное указание области видимости меняет naming class (http://eel.is/c++draft/class.access#base-5)
источник

D

Danya in pro.cxx
https://t.me/experimentalchill/73
Почему это работает? Почему доступ к приватному члену в шаблонном контексте работает? Есть объяснение для тупеньких?
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Danya
https://t.me/experimentalchill/73
Почему это работает? Почему доступ к приватному члену в шаблонном контексте работает? Есть объяснение для тупеньких?
Потому что нет способа это запретить
источник

D

Danya in pro.cxx
Artöm Bakri Al-Sarmini
Потому что нет способа это запретить
Почему нельзя проверить доступ к члену при инстанциации шаблона? Чем это отличается от других контекстов?
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Danya
Почему нельзя проверить доступ к члену при инстанциации шаблона? Чем это отличается от других контекстов?
В шаблоне тип T::*, к которому неприменимо понятие приватности
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
На строке &Foo::secret можно было бы, но видимо не подумали заранее
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
У Саттера было об этом, поищу
источник

AD

Andrey Davydov in pro.cxx
источник