结构的初始序列是什么?

时间:2014-10-25 07:42:00

标签: c++ struct language-lawyer unions

我遇到了最初的序列概念。通过initial sequence短语的标准提供只有3个结果,他们没有给出定义。

N3797::9.5/1 [class.union]节:

  

如果标准布局联合包含多个标准布局结构   共享一个共同的初始序列(9.2),如果是一个对象   标准布局联合类型包含标准布局之一   结构,允许检查任何共同的初始序列   标准布局结构成员;

我希望看一个引用的例子。

1 个答案:

答案 0 :(得分:5)

我相信它正在讨论这种事情:

union U {
    struct S {
        int a;
        int b;
        int c;
    }
    struct T {
        int x;
        int y;
        float f;
    }
};

它说可以访问U.S.aU.T.x并且它们是等效的。同样适用于U.S.bU.T.y。但是在设置U.T.f后访问U.S.c将是未定义的行为。