Compiler:  clang v21.1.0 (https://github.com/llvm/llvm-project.git 3623fe661ae35c6c80ac221f14d85be76aa870f1)
Language:  C++ v202002
C++ language version: C++20
+ operator <=> (spaceship) supported? --> YES
std::format supported? -----------------> YES
---------------------------------------

 --> T(11) / (constructor)
 --> T(21) / (constructor)
 --> T(31) / (constructor)
 --> T(41) / (constructor)
 --> T(51) / (constructor)
 --> T(61) / (constructor)
 --> T(71) / (constructor)
 --> T(81) / (constructor)
 --> T(91) / (constructor)
11/21 / 71/81
 --> operator==(11) / rhs:(21)
true  --> operator!=(11) / rhs:(21)
false  --> operator<(11) / rhs:(21)
false  --> operator<=(11) / rhs:(21)
true  --> operator>(11) / rhs:(21)
false  --> operator>=(11) / rhs:(21)
true  --> operator<=>(11) / rhs:(21)
equal
---------------------------------------


---------------------------------------
____________-- expression:   t1 + t2

 --> operator+(11) / rhs:(21)
 --> T(102) / (constructor)

resulting value:   0 --> operator<<(102) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 + t2
---------------------------------------

 --> ~T(102)

---------------------------------------
____________-- expression:   t1 - t2

 --> operator-(11) / rhs:(21)
 --> T(113) / (copy constructor)

resulting value:   0 --> operator<<(113) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 - t2
---------------------------------------

 --> ~T(113)

---------------------------------------
____________-- expression:   t1 * t2

 --> operator*(11) / rhs:(21)
 --> T(122) / (constructor)

resulting value:   0 --> operator<<(122) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 * t2
---------------------------------------

 --> ~T(122)

---------------------------------------
____________-- expression:   t1 / t2

 --> operator/(11) / rhs:(21)
 --> T(132) / (constructor)

resulting value:   0 --> operator<<(132) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 / t2
---------------------------------------

 --> ~T(132)

---------------------------------------
____________-- expression:   t1 % t2

 --> operator%(11) / rhs:(21)
 --> T(142) / (constructor)

resulting value:   0 --> operator<<(142) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 % t2
---------------------------------------

 --> ~T(142)

---------------------------------------
____________-- expression:   t1 ^ t2

 --> operator^(11) / rhs:(21)
 --> T(152) / (constructor)

resulting value:   0 --> operator<<(152) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 ^ t2
---------------------------------------

 --> ~T(152)

---------------------------------------
____________-- expression:   t1 & t2

 --> operator&(11) / rhs:(21)
 --> T(162) / (constructor)

resulting value:   0 --> operator<<(162) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 & t2
---------------------------------------

 --> ~T(162)

---------------------------------------
____________-- expression:   t1 | t2

 --> operator|(11) / rhs:(21)
 --> T(172) / (constructor)

resulting value:   0 --> operator<<(172) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 | t2
---------------------------------------

 --> ~T(172)

---------------------------------------
____________-- expression:   ~t1

 --> operator~(11)
 --> T(182) / (constructor)

resulting value:   0 --> operator<<(182) / (ostream insertion)

^^^^^^^^^^^^-- output for:   ~t1
---------------------------------------

 --> ~T(182)

---------------------------------------
____________-- expression:   !t1

 --> operator!(11)

resulting value:   false
^^^^^^^^^^^^-- output for:   !t1
---------------------------------------


---------------------------------------
____________-- expression:   t1 < t2

 --> operator<(11) / rhs:(21)

resulting value:   false
^^^^^^^^^^^^-- output for:   t1 < t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 <= t2

 --> operator<=(11) / rhs:(21)

resulting value:   true
^^^^^^^^^^^^-- output for:   t1 <= t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 == t2

 --> operator==(11) / rhs:(21)

resulting value:   true
^^^^^^^^^^^^-- output for:   t1 == t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 != t2

 --> operator!=(11) / rhs:(21)

resulting value:   false
^^^^^^^^^^^^-- output for:   t1 != t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 >= t2

 --> operator>=(11) / rhs:(21)

resulting value:   true
^^^^^^^^^^^^-- output for:   t1 >= t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 > t2

 --> operator>(11) / rhs:(21)

resulting value:   false
^^^^^^^^^^^^-- output for:   t1 > t2
---------------------------------------


---------------------------------------
____________-- expression:   ordering_as_string(t1 <=> t2)

 --> operator<=>(11) / rhs:(21)

resulting value:   equal
^^^^^^^^^^^^-- output for:   ordering_as_string(t1 <=> t2)
---------------------------------------


---------------------------------------
____________-- expression:   t1 += t2

 --> operator+=(11) / rhs:(21)

resulting value:   0 --> operator<<(11) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 += t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 -= t2


resulting value:   0 --> operator<<(11) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 -= t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 *= t2

 --> operator*=(11) / rhs:(21)

resulting value:   0 --> operator<<(11) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 *= t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 /= t2

 --> operator/=(11) / rhs:(21)

resulting value:   0 --> operator<<(11) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 /= t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 %= t2

 --> operator%=(11) / rhs:(21)

resulting value:   0 --> operator<<(11) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 %= t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 ^= t2

 --> operator^=(11) / rhs:(21)

resulting value:   0 --> operator<<(11) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 ^= t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 &= t2

 --> operator&=(11) / rhs:(21)

resulting value:   0 --> operator<<(11) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 &= t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 |= t2

 --> operator|=(11) / rhs:(21)

resulting value:   0 --> operator<<(11) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 |= t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 << t2

 --> operator unsigned long(21)
 --> operator<<(11) / offset:0
 --> T(192) / (constructor)

resulting value:   0 --> operator<<(192) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 << t2
---------------------------------------

 --> ~T(192)

---------------------------------------
____________-- expression:   t1 >> t2

 --> operator unsigned long(21)
 --> operator>>(11) / offset:0
 --> T(202) / (constructor)

resulting value:   0 --> operator<<(202) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 >> t2
---------------------------------------

 --> ~T(202)

---------------------------------------
____________-- expression:   t1 <<= t2

 --> operator unsigned long(21)
 --> operator<<=(11) / offset:0

resulting value:   0 --> operator<<(11) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 <<= t2
---------------------------------------


---------------------------------------
____________-- expression:   t1 >>= t2

 --> operator unsigned long(21)
 --> operator>>=(11) / offset:0

resulting value:   0 --> operator<<(11) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1 >>= t2
---------------------------------------


---------------------------------------
____________-- expression:   t1++

 --> operator++(11) / (postfix ++)
 --> T(213) / (copy constructor)

resulting value:   0 --> operator<<(213) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1++
---------------------------------------

 --> ~T(213)

---------------------------------------
____________-- expression:   ++t1

 --> operator++(11) / (prefix ++)

resulting value:   0 --> operator<<(11) / (ostream insertion)

^^^^^^^^^^^^-- output for:   ++t1
---------------------------------------


---------------------------------------
____________-- expression:   t1--

 --> operator--(11) / (postfix --)
 --> T(223) / (copy constructor)

resulting value:   0 --> operator<<(223) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1--
---------------------------------------

 --> ~T(223)

---------------------------------------
____________-- expression:   --t1

 --> operator--(11) / (prefix --)

resulting value:   0 --> operator<<(11) / (ostream insertion)

^^^^^^^^^^^^-- output for:   --t1
---------------------------------------


---------------------------------------
____________-- expression:   t1 && t2 && t3 && t4 && t5 && t6

 --> operator&&(11) / rhs:(21)
 --> operator&&(---) / (special EXTRA bool && T overload) / rhs:(31)
 --> operator&&(---) / (special EXTRA bool && T overload) / rhs:(41)
 --> operator&&(---) / (special EXTRA bool && T overload) / rhs:(51)
 --> operator&&(---) / (special EXTRA bool && T overload) / rhs:(61)

resulting value:   false
^^^^^^^^^^^^-- output for:   t1 && t2 && t3 && t4 && t5 && t6
---------------------------------------


---------------------------------------
____________-- expression:   t1 || t2 || t3 || t4 || t5 || t6

 --> operator||(11) / rhs:(21)
 --> operator||(---) / (special EXTRA bool && T overload) / rhs:(31)
 --> operator||(---) / (special EXTRA bool && T overload) / rhs:(41)
 --> operator||(---) / (special EXTRA bool && T overload) / rhs:(51)
 --> operator||(---) / (special EXTRA bool && T overload) / rhs:(61)

resulting value:   true
^^^^^^^^^^^^-- output for:   t1 || t2 || t3 || t4 || t5 || t6
---------------------------------------


---------------------------------------
____________-- expression:   t1[0]

 --> operator[](11) / pos:0

resulting value:   0 --> operator<<(11) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t1[0]
---------------------------------------


---------------------------------------
____________-- expression:   t1(1)

 --> operator()(11) / arg1:1

resulting value:   0
^^^^^^^^^^^^-- output for:   t1(1)
---------------------------------------


---------------------------------------
____________-- expression:   t1->a

 --> operator->(11)

resulting value:   0
^^^^^^^^^^^^-- output for:   t1->a
---------------------------------------


---------------------------------------
____________-- expression:   &t1

 --> operator&(11)

resulting value:   0x7ffc31795584
^^^^^^^^^^^^-- output for:   &t1
---------------------------------------


---------------------------------------
____________-- expression:   (t1, t2)

 --> operator int(21)
 --> operator,(11)
 --> T(233) / (copy constructor)

resulting value:   0 --> operator<<(233) / (ostream insertion)

^^^^^^^^^^^^-- output for:   (t1, t2)
---------------------------------------

 --> ~T(233)

---------------------------------------
____________-- expression:   long(t1)

 --> operator long(11)

resulting value:   0
^^^^^^^^^^^^-- output for:   long(t1)
---------------------------------------


---------------------------------------
____________-- expression:   t3 = t1

 --> operator=(31) / rhs:(11)
 --> T(243) / (copy constructor)

resulting value:   0 --> operator<<(243) / (ostream insertion)

^^^^^^^^^^^^-- output for:   t3 = t1
---------------------------------------

 --> ~T(243)
 --> ~T(91)
 --> ~T(81)
 --> ~T(71)
 --> ~T(61)
 --> ~T(51)
 --> ~T(41)
 --> ~T(31)
 --> ~T(21)
 --> ~T(11)


Done!
