isn't the && !mixedasop() added to the condition the problem: the cast should not be elided if it's a float/double. t