初始化任何联盟成员(指定的初始化程序)

时间:2020-04-27 03:01:21

标签: c++ c++20

例如,声明联盟时

union u
{
  int x;
  float y;
};

您可以按以下方式构造并集:

u integer { .x = 10 };
u fraction { .y = 10.f };

假设我有一个指向成员的指针,

auto union_member_pointer = &u::y;

什么语法允许我抽象地分配给工会的那个成员?即

u unknown { .*union_member_pointer = { } }; // doesn't work

1 个答案:

答案 0 :(得分:2)

不允许将指定的初始化动态化。它适用于成员的名称,而不是成员指针或类似对象的名称。