Почему sqrt () отлично работает с переменной int, если она не определена для int?
В главе 3Программирование: принципы и практика с использованием C ++ (Шестая печать), Страуструп утверждает (стр.68):"Обратите внимание, чтоsqrt()
не определено дляint
".
Вот простая программа на C ++, основанная на этой главе:
#include "std_lib_facilities.h"
int main()
{
int n = 3;
cout << "Square root of n == " << sqrt(n) << "\n";
}
Учитывая приведенную выше цитату, я ожидаю, что процесс компиляции или запуска этой программы каким-то образом завершится неудачно.
К моему удивлению, его компиляция (с g ++ (GCC) 4.2.1) и его запуск прошли успешно без ошибок и предупреждений и дали следующий вполне приличный результат:
Square root of n == 1.73205
Поэтому мой вопрос: еслиsqrt()
на самом деле не определено дляint
, тогда почему вышеприведенная программа как-то не работает?