I just want to make the connection with the thread I opened last week: "[math][tools][units] generic libraries not generic enough"
The point I want to make is that if there were a uniform facility to deduce the result of a built-in operator over some arithmetic types then library authors could do a better job at writting generic libraries on some exotic arithmetic types and combinations, for example
multiply_typeof_helper
::type --> double I just wanted to make the connection between the two problems; and hopeful solve the has_operator and typeof_operator problem together.
The operator traits can detect if the operator return value can be converted to a given type but not the precise return type.
PS: what if to types can not be multiplied, etc, the has_multiplies will tell or multiplies_typeof_helper can return void, or boost::none.
has_operator_multiplies::value is false. Frédéric