case (C++)

Used with the switch_type attribute in a union.

Syntax

[ case(value) ]

Parameters

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.

Remarks

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

Example

The following code shows a use of the case attribute:

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

Requirements

Attribute context Value
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