So your thesis is effectively that we should strike "required" and substitute "used" in
When [sizeof is] applied to a class, the result is the number of bytes in an object of that class including any
padding <del>required</del><ins>used</ins> for placing objects of that type in an array.
?
That's a very small wording change :). Though, I think you are misreading that paragraph. In your example, sizeof(A | _ | B) would be 3, because that's the number of bytes in that object - while sizeof( A | _ | B | _ ) would be 4 (this results from alignof(2)).
G