You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Prior to introduction of subobjects, base_type was a declaration that had DeclSpecifiers that could encode both AccessProtection and virtual-ness of the base:
enumclassDeclSpecifiers : std::uint32_t {
...
Virtual = 1 << 6, // also used as storage class specifier// for virtual base subobjects
...
Public = 1 << 11,
Protected = 1 << 12,
Private = 1 << 13,
AccessProtection = Public | Protected | Private,
...
};
Looking at current definition of Base_subobject:
// Specifier of semantics for base-class subobjects.enumclassSubobject_specifier : std::uint8_t {
Exclusive, // Each subobject is unshared, default in ISO C++
Shared, // "virtual" subobject shared along inheritance chain
};
// -- Base_subobject --// Each base-specifier in a base-clause morally declares an unnamed subobject.structBase_subobject {
virtualconst Type& type() const = 0;
virtual Subobject_specifier specifier() const = 0;
};
it seems that we may have lost an ability to encode access protection for bases
The text was updated successfully, but these errors were encountered:
Consider:
Prior to introduction of subobjects,
base_type
was a declaration that had DeclSpecifiers that could encode both AccessProtection and virtual-ness of the base:Looking at current definition of
Base_subobject
:it seems that we may have lost an ability to encode access protection for bases
The text was updated successfully, but these errors were encountered: