switch_type

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

[switch_type(type}]

Parameters

  • type
    The switch type, can be an integer, character, Boolean, or enumeration type.

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.

Requirements

Attribute Context

Applies to

typedef

Repeatable

No

Required attributes

None

Invalid attributes

None

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

See Also

Reference

export

Other Resources

IDL Attributes

Typedef, Enum, Union, and Struct Attributes

ATL Samples