> [...] the identifier in each designator shall name a direct non-static data member of the class [...]and I couldn't find any explicit reasoning for this decision in P0329R4: "Designated Initialization Wording".
struct ta{ int a; };
struct tb{ int b; };
struct tc : ta, tb{
using ta::a;
using tb::b;
int c;
};
struct td{ int a; int b; int c; };
int main(){
// OK
td ok{ .a = 1, .b = 2, .c = 3 };
// Error: 'ta::a' is not a direct member of 'tc'
// would be allowed with relaxed rules for designated-initializers
ta err{ .a = 1, .b = 2, .c = 3 };
}