For the purposes I want, the most convenient would be base types you can validly static_cast to, which I suppose would be the "accessable" ones.

However, in terms of the compiler magic, a complete list of all base classes regardless of access level would be fine, as other template tricks could probably be used to filter the list appropriately.

For convenience, perhaps this could be parameterized to allow the programmer to specify what access levels (if any) they want to filter out. "Accessible in current context" would be nice and may require compiler magic.

I don't imagine virtual/non-virtual inheritance would matter, but again, possibly this could be parameterized to distinguish that as well.

Billy

On Sun, Jan 29, 2023 at 4:50 PM Sebastian Wittmeier via Std-Proposals <std-proposals@lists.isocpp.org> wrote:

Would you distinguish between different access levels? public, protected, private

 

What about virtual vs. non-virtual inheritance?