Почему std::pow(double, int) был удален из C++11?

Изучая Эффективный способ вычисления 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) предоставляет хорошую возможность для оптимизации, поэтому кажется странным, что они были удалены. Будет ли компилятор по-прежнему соответствовать стандартам, если предоставит такую оптимизированную перегрузку?

63
задан Community 23 May 2017 в 12:09
поделиться