以下のように C++ で構造体を初期化することは可能ですか?
struct address {
int street_no;
char *street_name;
char *city;
char *prov;
char *postal_code;
};
address temp_address = { .city = "Hamilton", .prov = "Ontario" };
リンクここそしてこここのスタイルは C でのみ使用可能であると書かれています。もしそうなら、なぜ C++ では不可能なのでしょうか? C++ で実装されていない技術的な理由があるのでしょうか、それともこのスタイルを使用するのはよくない習慣なのでしょうか。構造体が大きいため、この初期化方法を使用するのが気に入っています。このスタイルを使用すると、どのメンバーにどの値が割り当てられているかが明確にわかります。
同じ読みやすさを実現できる他の方法があれば、ぜひ教えてください。
この質問を投稿する前に、次のリンクを参照しました。
ベストアンサー1
各初期化値を明確にしたい場合は、複数の行に分割し、それぞれにコメントを記入します。
address temp_addres = {
0, // street_no
nullptr, // street_name
"Hamilton", // city
"Ontario", // prov
nullptr, // postal_code
};