Комментарии
|
0
Ну, на то, что это сильно хороший тестик, никто и не претендовал :) Потому он и тестик
Для тех, кто не разобрался: Функция делает именно то, что от нее и ожидают - возвращает переданный ей параметр. В первом определении переменной сначала вычисляется параметр конструктора, а потом создается переменная. Поэтому f остается нескрытой, вызывается функция f<bool>(1) и переменной f присваивается 1, true. Во втором определении сначала создается переменная a и скрывает определение типа а, поэтому выражение представляет собой 2 сравнения: (f < a) > f. Переменная a не определена, поэтому (f < a) - или 0, или 1, смотря чем a инициализируется. Следовательно (f < a) > f равно 0, false. |



