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<double, int>::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.
what do you mean by "it can't"? is that a limitation of the language? or the library? can't the built-in type cases by hard coded, e.g. template<> multiply_typeof_helper<double, int>{ typedef double type; }; it can always be specialized, and for decltype compilers it can be by default: template<class T1, class T2> multiply_typeof_helper{ typedef decltype(T1()*T2()) type; }; isn't this something that fits in type traits? Alfredo