S() /* some tag that designates this constructor as "the aggregate/designated initializer constructor" */ { std::cout << "constructed an S instance: " << a << std::endl; };
};
int main() {
S s = S{.a = 1};
};
You are probably right, except no constructor argument signature might be confusing, so maybe