fork download
#include <iostream>
using namespace std;

struct TYPE1 {
	TYPE1(const char *name, int val) : a(val) {}
	int a;
};

struct TYPE2 {
	char g[3];
};

struct PARAMS {
  PARAMS(int address, const char *name, const TYPE1 &f) :
                    Address(address), Name(name), u(f)
  {
  }
  PARAMS(int address, const char *name, const TYPE2 &b) :
                    Address(address), Name(name), u(b)
  {
  }

  int Address;
  char const *Name;         
  union union_name
  {
    union_name(const TYPE1 &f) : foo(f) {}
    union_name(const TYPE2 &b) : bar(b) {}
    TYPE1 foo;
    TYPE2 bar;
  }u;
};

const PARAMS paramTbl[] {
  PARAMS(0x1000, "Param1", TYPE1("abc", 0)),
};

int main() {
	cout << paramTbl[0].Name << endl;
	return 0;
}
Success #stdin #stdout 0s 3140KB
stdin
Standard input is empty
stdout
Param1