This documentation is archived and is not being maintained.


Identifies the type of the variable used as the union discriminant.


Attribute Context

Applies to typedef
Repeatable No
Required attributes None
Invalid attributes None

For more information about the attribute contexts, see Attribute Contexts.


The switch_type C++ attribute has the same functionality as the switch_type MIDL attribute.

C++ attributes do not support encapsulated unions. Nonencapsulated unions are supported only in the following form:

// cpp_attr_ref_switch_type.cpp
// compile with: /LD
#include <windows.h>
[ export ]
struct SizedValue2
   [switch_type("char"), switch_is(kind)] union
      [case(1), string]
         wchar_t* wval;
      [default, string]
         char* val;
   char kind;


See the case example for a sample use of switch_type.

See Also

IDL Attributes | Typedef, Enum, Union, and Struct Attributes | export | Attributes Samples