#include <iostream>
int main()
{
struct A
{
// A does not have a user-declared / user-written default constructor
int i = 22 ;
int j ; // no default member initialiser
double d ; // no default member initialiser
int* p ; // no default member initialiser
};
A a ; // a.i == 22 (default initialisation of the other members j, d and p does nothing)
a.i = -99 ; // a.i == -99
// assign a value-initialised object of type A
a = {} ; // a.i == 22, a.j == 0, a.d = 0.0, a.p == nullptr
std::cout << a.i << ' ' << a.j << ' ' << std::fixed << a.d << ' ' << a.p << '\n' ;
}