multiMap() function - integer linear interpolation

I never noticed it won't take values assigned to variables and it doesn't like Strings or strings, but everything else works. However I reverted it back to just this.

template< typename A, typename B, typename C, typename D, typename E > 
auto map( const A x, B in_min, C in_max, D out_min, E out_max ) -> decltype( x * in_min * in_max * out_min * out_max ) 
{ 
  typedef decltype( x * in_min * in_max * out_min * out_max) T_out;
  //((x < in_min)? in_min : ((x > in_max)? in_max : x)) -> constrain without overhead
  return (T_out)( ((x < in_min)? in_min : ((x > in_max)? in_max : x)) - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

So no Strings and/or strings and were good to go.

Thanks Paul