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

Concepts

Visual C++ Samples

Other Resources

IDL Attributes

Typedef, Enum, Union, and Struct Attributes