Изучая Эффективный способ вычисления p^q (экспоненция), где q - целое число и просматривая стандарты C++98 и C++11, я заметил, что, видимо, перегрузка std::pow(double, int)
была удалена в C++11.
В C++98 26.5/6 она имеет сигнатуру double pow(double, int);
.
В C++11 26.8 я смог найти только перегрузки, принимающие пару float
, double
или long double
, и явное замечание, что в случае смеси типов параметров integral&double следует выбирать перегрузку pow(double, double)
.
Это просто уточнение предыдущего намерения, они были неправильно добавлены в C++98, они были фактически удалены в C++11, или что-то еще?
Очевидно, что версия pow(double, int)
предоставляет хорошую возможность для оптимизации, поэтому кажется странным, что они были удалены. Будет ли компилятор по-прежнему соответствовать стандартам, если предоставит такую оптимизированную перегрузку?