Operator - (Subtract)

Subtracts two expressions

Syntax
   Declare Operator - ( ByRef lhs As Integer, ByRef rhs As Integer ) As 
   Integer
   Declare Operator - ( ByRef lhs As UInteger, ByRef rhs As UInteger ) As 
   UInteger

   Declare Operator - ( ByRef lhs As Single, ByRef rhs As Single ) As Single
   Declare Operator - ( ByRef lhs As Double, ByRef rhs As Double ) As Double

   Declare Operator - ( ByRef lhs As T Pointer, ByRef rhs As T Pointer ) As 
   Integer
   Declare Operator - ( ByRef lhs As T Pointer, ByRef rhs As Integer ) As T 
   Pointer

   Declare Operator - ( ByRef lhs As T, ByRef rhs As T ) As Integer
   Declare Operator - ( ByRef lhs As T, ByRef rhs As Integer ) As T
   Declare Operator - ( ByRef lhs As Integer, ByRef rhs As T ) As T

Usage
   result = lhs - rhs

Parameters
   lhs
      The left-hand side expression to subtract from.
   rhs
      The right-hand side expression to subtract.
   T
      Any pointer type.

Return Value
   Returns the subtraction of two expressions.

Description
   When the left and right-hand side expressions are numeric values, 
   Operator - (Subtract) returns the subtraction of the two values.

   If the left and right-hand side expressions are both of the T Pointer 
   type, for some type T, the operator performs pointer subtraction on the 
   address, returning the result.  This is different from numeric 
   subtraction because the difference is divided by SizeOf( T ).

   If an integral value n is subtracted from a T Pointer type, the operator 
   performs pointer arithmetic on the address, returning the memory 
   position of a T value, n indices before (assuming (-n) is within bounds 
   of a contiguous array of T values).  This behaves differently from 
   numeric subtraction, because the Integer value is scaled by SizeOf( T ).

   Neither operand is modified in any way.

   This operator can be overloaded to accept user-defined types.

Example
   Dim n As Single
   n = 4 - 5
   Print n

   will produce the output:


   -1

Dialect Differences
   * In the -lang qb dialect, this operator cannot be overloaded.

Differences from QB
   * None

See also
   * Mathematical Functions

