Comments 2
Про ADL не упомянули самую мякотку
class Secret
{
private:
int i_am_private = 33;
};
template <auto M>
struct Loophole {
friend auto AdlMagic(Secret const&) noexcept { return M; }
};
template struct Loophole<&Secret::i_am_private>;
auto AdlMagic(Secret const&) noexcept;
int main(void)
{
Secret s;
auto i_am_private = AdlMagic(s);
std::cout << s.*i_am_private << std::endl;
return 0;
}И это работает!)
да можно и без ADL https://habr.com/ru/articles/762250/
private та еще дыра в языке PrivateMorozov, какойто Ж)
Sign up to leave a comment.
Непослушный using