您可以为带有const成员的联合编写副本构造函数吗?

时间:2019-02-12 20:21:49

标签: c++ unions

假设我有一个结构,该结构包含具有const个成员的联合,例如:

struct S
{
  // Members

  const enum { NUM, STR } type;

  union
  {
    const int a;
    const std::string s;
  };

  // Constructors

  S(int t_a) : type(NUM), a(t_a);

  S(const std::string & t_s) : type(STR), s(t_s);

};

到目前为止,太好了。但是现在说我想为此类型编写一个复制构造函数。

这似乎并不涉及做任何邪恶的事情,但是由于我需要在成员初始化程序中初始化const成员,因此我看不到如何基于依赖于type成员的逻辑来执行此操作。

问题:

  • 是否可以编写此构造函数?

  • 如果不是,这本质上是句法上的疏忽,还是某种根本原因导致该语言无法支持这种事情?

0 个答案:

没有答案