You are correct, it does not. You will have to mark the method as a friend in derived.

On Sun, Jul 19, 2020, 05:33 Magnus Fromreide <magfr@lysator.liu.se> wrote:
Hello!

I read P0847R4 and got curious about an edge case.

Consider

struct Base
{
        int i = 0;

        template <class Self>
        auto& f(this Self&& self)
        {
                return forward<Self>(self).i;
        }
};

struct Derived: private Base
{
        using Base::f;
};

Now, as I am reading the proposal the call

Derived().f()

should be ill-formed as it tries to access Derived.i but that is private in
this context, or does the proposal change the access rules somehow?

/MF