in default case, (shouldn't be here) in default case, (shouldn't be here) Adding typedef f --- Entering scope Adding type T --- Entering scope --- Leaving scope containing --- Leaving scope containing T Adding function swap --- Entering scope Adding type T --- Entering scope --- Leaving scope containing Adding object left Adding object right --- Entering scope Adding object temp --- Leaving scope containing temp (__temp__2tT) (2) --- Leaving scope containing left (__left__2tT) (1) right (__right__2tT) (1) T Adding context sumable --- Entering scope Adding type T --- Entering scope --- Leaving scope containing Adding object 0 Adding function ?+? --- Entering scope --- Leaving scope containing Adding function ?++ --- Entering scope --- Leaving scope containing Adding function ?+=? --- Entering scope --- Leaving scope containing --- Leaving scope containing 0 (__0__C2tT) (1) ?++ (__?++__F_2tT_2tT_) (1) ?+=? (__?+=?__F_2tT_2tT2tT_) (1) ?+? (__?+?__F_2tT_2tT2tT_) (1) T Adding type T1 --- Entering scope --- Leaving scope containing Adding object 0 Adding function ?+? --- Entering scope --- Leaving scope containing Adding function ?++ --- Entering scope --- Leaving scope containing Adding function ?+=? --- Entering scope --- Leaving scope containing Adding type T2 --- Entering scope Adding type P1 --- Entering scope --- Leaving scope containing Adding type P2 --- Entering scope --- Leaving scope containing --- Leaving scope containing P1 P2 Adding type T3 --- Entering scope --- Leaving scope containing Adding object 0 Adding function ?+? --- Entering scope --- Leaving scope containing Adding function ?++ --- Entering scope --- Leaving scope containing Adding function ?+=? --- Entering scope --- Leaving scope containing Adding struct __anonymous0 --- Entering scope Adding object i Adding object j --- Leaving scope containing i (__i__3tP1) (1) j (__j__3tP2) (1) Adding type T2 --- Entering scope Adding type P1 --- Entering scope --- Leaving scope containing Adding type P2 --- Entering scope --- Leaving scope containing --- Leaving scope containing P1 P2 Adding object 0 Adding function ?+? --- Entering scope --- Leaving scope containing Adding function ?++ --- Entering scope --- Leaving scope containing Adding function ?+=? --- Entering scope --- Leaving scope containing Adding object w1 Adding typedef w2 --- Entering scope --- Leaving scope containing Adding object g2 Adding type w3 --- Entering scope --- Leaving scope containing Adding object g3 Adding function sum --- Entering scope Adding type T --- Entering scope --- Leaving scope containing Adding object 0 Adding function ?+? --- Entering scope --- Leaving scope containing Adding function ?++ --- Entering scope --- Leaving scope containing Adding function ?+=? --- Entering scope --- Leaving scope containing Adding object n Adding object a --- Entering scope Adding object total Adding object i --- Leaving scope containing i (__i__i) (2) total (__total__2tT) (2) --- Leaving scope containing 0 (__0__2tT) (1) ?++ (__?++__F_2tT_2tT_) (1) ?+=? (__?+=?__F_2tT_2tT2tT_) (1) ?+? (__?+?__F_2tT_2tT2tT_) (1) a (__a__P2tT) (1) n (__n__i) (1) T Adding function twice --- Entering scope Adding type T --- Entering scope --- Leaving scope containing Adding object 0 Adding function ?+? --- Entering scope --- Leaving scope containing Adding function ?++ --- Entering scope --- Leaving scope containing Adding function ?+=? --- Entering scope --- Leaving scope containing Adding object t --- Entering scope --- Leaving scope containing --- Leaving scope containing 0 (__0__C2tT) (1) ?++ (__?++__F_2tT_2tT_) (1) ?+=? (__?+=?__F_2tT_2tT2tT_) (1) ?+? (__?+?__F_2tT_2tT2tT_) (1) t (__t__2tT) (1) T Adding function main --- Entering scope --- Entering scope Adding object x Adding object y Adding object a Adding object f --- Leaving scope containing a (__a__A0i) (2) f (__f__f) (2) x (__x__i) (2) y (__y__i) (2) --- Leaving scope containing