I think you are trying to get a "theorem" from the facts that can be found in the standard, and then you expect the standard to recognize the existence of this "theorem". The standard does not. He does not seek to find and include all possible โtheoremsโ that can be obtained from the standard text.
Your โtheoremโ is perfectly true (unless I miss something). You are right, since class B is abstract, this class can never be used as the most derived class. This immediately means that class B will never get the opportunity to build its virtual base A And this means that technically in B compiler does not have to worry about the availability and / or availability of the corresponding constructors in A or in any other virtual databases.
But the standard simply does not make this connection and does not want to make it. He does not consider constructors of abstract classes in any special way. The requirements for such constructors are the same as for non-abstract classes.
You can call try, suggesting it as a possible improvement to the standard committee.
AnT
source share