联合初始化中的结构

struct in union initialize

目前,我在联合中有一个结构。例如,

Struct foo{
    Union u{
         Struct s1{
             int i1;
         } ss1;
         Struct s2{
             int i2;
         } ss2;
    } wrap;
};

所以当我想初始化联合时,我尝试这样做。

foo f = {};
f.u.ss1 = {
    .i1 = 0;
}

但错误显示 operator = 不匹配(操作数类型和大括号括起来的初始化列表)。

那么正确的初始化方法是什么?提前致谢。

初始化应该是:

foo f;
f.wrap.ss1 = {0 /*, comma seperated values, */};