Enabling and Disabling Error Checking for the _DecimalT Class Template

To enable error checking within the _DecimalT class template, you can turn on the debug macro by adding either the DEFINE(_DEBUG_DECIMAL) option or the DEFINE(_DEBUG) option during the invocation of the compiler, as shown in the following figure.

Figure 1. Commands to Enable Error Checking within the _DecimalT Class Template at Compile Time
CRTCPPMOD DEFINE(_DEBUG)
CRTBNDCPP DEFINE(_DEBUG)
CRTCPPMOD DEFINE(_DEBUG_DECIMAL)
CRTBNDCPP DEFINE(_DEBUG_DECIMAL)
Note:
  1. The difference between the DEFINE(_DEBUG) and DEFINE(_DEBUG_DECIMAL) invocations depends on whether or not the _DEBUG macro is used by other classes to control the error checking. If the _DEBUG macro is used by another class, DEFINE(_DEBUG) affects all classes that use the _DEBUG macro and DEFINE(_DEBUG_DECIMAL) affects only the _DecimalT class template.
  2. When you turn assertion checking on for a group of files using the _DEBUG macro, use the _NODEBUG_DECIMAL macro to override the _DEBUG macro and turn assertion checking off for the _DecimalT class template.
To disable error checking within the _DecimalT class template, you can use the commands shown in the following figure:
Figure 2. Commands to Disable Error Checking within the _DecimalT Class Template at Compile Time
CRTCPPMOD DEFINE(_NODEBUG_DECIMAL)
CRTBNDCPP DEFINE(_NODEBUG_DECIMAL)
Note:
  1. You can enable error checking for all classes, except the _DecimalT class template, that use _DEBUG as the control macro by using one of the following commands:
    CRTCPPMOD DEFINE('_DEBUG' '_NODEBUG_DECIMAL')
    CRTBNDCPP DEFINE('_DEBUG' '_NODEBUG_DECIMAL')
  2. If you try to use both the _DEBUG_DECIMAL and _NODEBUG_DECIMAL macros on the same invocation, the _NODEBUG_DECIMAL macro takes precedence, and error checking for the _DecimalT class template is disabled.