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