Files
cppdraft_translate/cppdraft/derivation.md
2025-10-25 03:02:53 +03:00

2.0 KiB

[derivation]

16 Library introduction [library]

16.4 Library-wide requirements [requirements]

16.4.6 Conforming implementations [conforming]

16.4.6.13 Derived classes [derivation]

1

#

An implementation may derive any class in the C++ standard library from a class with a name reserved to the implementation.

2

#

Certain classes defined in the C++ standard library are required to be derived from other classes in the C++ standard library.

An implementation may derive such a class directly from the required base or indirectly through a hierarchy of base classes with names reserved to the implementation.

3

#

In any case:

Every base class described asvirtual shall be virtual;

Every base class not specified asvirtual shall not be virtual;

Unless explicitly stated otherwise, types with distinct names shall be distinct types. [Note 1: There is an implicit exception to this rule for types that are described as synonyms ([dcl.typedef], [namespace.udecl]), such assize_t ([support.types]) andstreamoff ([stream.types]). — end note]

4

#

All types specified in the C++ standard library shall be non-final types unless otherwise specified.