Can I cast a derived class to a private base class, using C-style cast?

Yes you can: §5.4/7 of the standard:

… the following static_cast and reinterpret_cast operations
(optionally followed by a const_cast operation) may be performed using
the cast notation of explicit type conversion, even if the base class
type is not accessible:

a pointer to an object of derived class type or an lvalue of derived
class type may be explicitly converted to a pointer or reference to an
unambiguous base class type, respectively;

But try not to as it defeats the purpose of private inheritance.

Leave a Comment