case (C++)

Used with the switch_type attribute in a union.

[ 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

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

Concepts

Visual C++ Samples

Other Resources

IDL Attributes

Typedef, Enum, Union, and Struct Attributes

Class Attributes