A type is self-contained, if, after copying an object of that type, all references/pointers in its copy point to objects inside that copy.
Examples:
- numericals;
- owning pointer to an object of self-contained type;
- strings;
- data structures consisting of the above
Sufficient condition: no "magic 5" (c(d)tors) and all members are also self-contained.
Implementation: potentially can go along lines of adding an attribute or constexpr.
Also: respective rule should be added.