case (C++)

Used with the switch_type attribute in a union.


[ case(value) ]


A possible input value for which you want to provide processing. The type of value can be one of the following types:

  • int

  • char

  • boolean

  • enum

or an identifier of such a type.


The case C++ attribute has the same functionality as the case MIDL attribute. This attribute is only used with the switch_type attribute.


The following code shows a use of the case attribute:

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


Attribute Context

Applies to Member of a class or struct
Repeatable No
Required attributes None
Invalid attributes None

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

See also

IDL Attributes
Typedef, Enum, Union, and Struct Attributes
Class Attributes