構造体のオプションのメンバーを割り当てるための最良のスタイルは何ですか? たとえば、私は構造体を持っています:
struct B{
public:
int x;
}
struct A{
public:
boost::optional<B> b;
};
void foo(){
A a;
a.b.x = 10; //Runtime exception because a.b is not initialized.
}
1 つのオプションは、一時的な B 構造体を定義し、それを A に割り当てることです。
void foo(){
A a;
B tmp;
a.b = tmp;
a.b.x = 10; //OK.
}
また:
void foo(){
A a;
a.b = B();
a.b.x = 10; //OK.
}
これを行うためのより明確な方法はありますか?