Operator Or (Inclusive Disjunction)

Returns the bitwise-or (inclusive disjunction) of two numeric values

Syntax
   Declare Operator Or ( ByRef lhs As T1, ByRef rhs As T2 ) As Ret

Usage
   result = lhs Or rhs

Parameters
   lhs
      The left-hand side expression.
   T1
      Any numeric or boolean type.
   rhs
      The right-hand side expression.
   T2
      Any numeric or boolean type.
   Ret
      A numeric or boolean type (varies with T1 and T2).

Return Value
   Returns the bitwise-disjunction of the two operands.

Description
   This operator returns the bitwise-disjunction of its operands, a logical 
   operation that results in a value with bits set depending on the bits of 
   the operands (for conversion of a boolean to an integer, false or true 
   boolean value becomes 0 or -1 integer value).

   The truth table below demonstrates all combinations of a 
   boolean-disjunction operation:

      +-------+-------+------+
      |Lhs Bit|Rhs Bit|Result|
      |0      |0      |0     |
      |1      |0      |1     |
      |0      |1      |1     |
      |1      |1      |1     |
      +-------+-------+------+

   No short-circuiting is performed - both expressions are always 
   evaluated.

   The return type depends on the types of values passed. Byte, UByte and 
   floating-point type values are first converted to Integer. If the left 
   and right-hand side types differ only in signedness, then the return 
   type is the same as the left-hand side type (T1), otherwise, the larger 
   of the two types is returned. Only if the left and right-hand side types 
   are both Boolean, the return type is also Boolean.

   This operator can be overloaded for user-defined types.

Example
   ' Using the OR operator on two numeric values
   Dim As UByte numeric_value1, numeric_value2
   numeric_value1 = 15 '00001111
   numeric_value2 = 30 '00011110

   'Result =  31  =     00011111       
   Print numeric_value1 Or numeric_value2
   Sleep

   ' Using the OR operator on two conditional expressions
   Dim As UByte numeric_value
   numeric_value = 10

   If numeric_value = 5 Or numeric_value = 10 Then Print "Numeric_Value equals 5 or 10"
   Sleep

   ' This will output "Numeric_Value equals 5 or 10" because
   ' while the first condition of the first IF statement is false, the second is true

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

Differences from QB
   * None

See also
   * OrElse
   * Operator Truth Tables

