首页 > 解决方案 > 初始化任何联合成员(指定初始化器)

问题描述

宣布工会时,例如

union u
{
  int x;
  float y;
};

您可以按如下方式构建联合:

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

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

auto union_member_pointer = &u::y;

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

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

标签: c++c++20

解决方案


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


推荐阅读