fixed type-deduction template bug (vc++ more forgiving)