The switch_is attribute designates a union discriminator. When the union is a procedure parameter, the union discriminator must be another parameter of the same procedure. When the union is a field of a structure, the discriminator must be another field of the structure at the same level as the union field. The discriminator must be a boolean, char, integral, or enum type, or a type that resolves to one of these types. For more information, see non-encapsulated_union.