Я хочу лучше узнать, когда я должен бросить. Каковы правила неявного преобразования типов в С++ при добавлении, умножении и т.д. Например,
int + float = ?
int * float = ?
float * int = ?
int / float = ?
float / int = ?
int / int = ?
int ^ float = ?
et cetera...
Будет ли выражение всегда оцениваться как более точный тип? Различаются ли правила для Java? Пожалуйста, поправьте меня, если я сформулирую этот вопрос неточно.