This documentation is archived and is not being maintained.

switch_type

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

[switch_type]

Attribute Context

Applies to typedef
Repeatable No
Required attributes None
Invalid attributes None

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

Remarks

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>
[module(name=MyLibrary)];
[ export ]
struct SizedValue2
{
   [switch_type("char"), switch_is(kind)] union
   {
      [case(1), string]
         wchar_t* wval;
      [default, string]
         char* val;
   };
   char kind;
};

Example

See the case example for a sample use of switch_type.

See Also

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

Show: