Inicialización de la estructura de C ++

¿Es posible inicializar estructuras en C ++ como se indica a continuación?

struct address {
    int street_no;
    char *street_name;
    char *city;
    char *prov;
    char *postal_code;
};
address temp_address =
    { .city = "Hamilton", .prov = "Ontario" };

Los enlacesaquí yaquí mencione que es posible usar este estilo solo en C. Si es así, ¿por qué no es posible en C ++? ¿Existe alguna razón técnica subyacente por la que no se implementa en C ++ o es una mala práctica usar este estilo? Me gusta usar esta forma de inicializar porque mi estructura es grande y este estilo me da una legibilidad clara de qué valor se asigna a cada miembro.

Por favor, comparta conmigo si hay otras formas a través de las cuales podamos lograr la misma legibilidad.

He referido los siguientes enlaces antes de publicar esta pregunta.

C / C ++ para AIXInicialización de la estructura C con variableInicialización de estructuras estáticas con tags en C ++.C ++ 11 Inicialización apropiada de la estructura

Respuestas a la pregunta(16)

Su respuesta a la pregunta