title: Why was std::pow(double, int) removed from C++11?
body: <p>While looking into <a href="https://stackoverflow.com/questions/5625431">Efficient way to compute p^q (exponentiation), where q is an integer</a> and reviewing the C++98 and C++11 standards I noticed that apparently the <code>std::pow(double, int)</code> overload was removed in C++11.</p>
  
  <p>In C++98 26.5/6 it has the <code>double pow(double, int);</code> signature.</p>
  
  <p>In C++11 26.8 all I could find was overloads taking a pair of <code>float</code>, <code>double</code>, or <code>long double</code>, and an explicit note that in case of a mixture of parameter types integral&amp;double, that the <code>pow(double, double)</code> overload should be picked.</p>
  
  <p>Is this just a clarification of the previous intention, were they incorrectly added in C++98, were they actually removed in C++11, or something else?</p>
  
  <p>Obviously the <code>pow(double, int)</code> version provides a nice opportunity for optimization so it seems odd that they would be removed. Would a compiler still be standards conforming to provide such an optimized overload?</p>