While explaining when private inheritance must be used, instead of containment, the author of this article says the following :
"We need to construct the used object before, or destroy it after, another base subobject. If the slightly longer object lifetime matters, there's no way to get it other than using inheritance"
If you want subobject A to be constructed before subobject B and destructed after B, wouldn't be enough to declare A before B, in the enclosing class ? In other words, why can't we use containment to achieve the same result in this case ?