### C++ Supported Expression Operands

You can monitor an expression that uses the following types of operands only:

Operand
  Definition
Variable
  A variable used in your program.
Constant
  The constant can be one of the following types:
  - Fixed or floating-point constant within the ranges supported by the system the debuggee program is running on.
  - A string constant, enclosed in double quotation marks (for example, `"mystring"`)
  - A character constant, enclosed in single quote marks (for example, `'x'`)
Register
  Any of the processor registers that can be displayed in the Registers Monitor. In the case of conflicting names, program variable names take precedence over register names. For conversions that are done automatically when the registers display in mixed-mode expressions, general-purpose registers are treated as unsigned arithmetic items with a length appropriate to the register. For example, on Intel platforms EAX is 32-bits, AX is 16-bits, and AL is 8-bits.

If you monitor an enumerated variable, a comment appears to the right of the value. If the value of the variable matches one of the enumerated types, the comment contains the name of the first enumerated type that matches the value of the variable. If the length of the enumerated name does not fit in the monitor, the contents appear as an empty entry field.

The comment (empty or not) lets you distinguish between a valid enumerated value and an invalid value. An invalid value does not have a comment to its right.

You cannot update an enumerated variable by entering an enumerated type. You must enter a value or expression. If the value is a valid enumerated value, the comment to the right of it is updated.

Bit fields are supported for C/C++ compiled code only. You can display and update bit fields, but you cannot use them in expressions. You cannot look at variables that have been defined using the `#define` preprocessor directive.