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
Would you distinguish between different access levels? public, protected, private
What about virtual vs. non-virtual inheritance?