static const bool traps = true;
static const bool tinyness_before = true;
static const float_round_style round_style =
round_to_nearest;
};
В заголовках
определены макросы, определяющие основные свойства целых чисел и чисел с плавающей точкой.Б.9.2. Стандартные математические функции
В стандартной библиотеке определены основные математические функции (в заголовках
).Существуют версии этих функций, принимающие аргументы типа float
double
, long double
и complex
. У каждой из этих функций тип возвращаемого значения совпадает с типом аргумента.Если стандартная математическая функция не может выдать корректный с математической точки зрения результат, она устанавливает переменную errno
Б.9.3. Комплексные числа
В стандартной библиотеке определены типы для комплексных чисел complex
complex
и complex
. Класс complex
, где Scalar
— некий другой тип, поддерживающий обычные арифметические операции, как правило, работоспособен, но не гарантирует переносимости программ.template
// комплексное число — это пара скалярных значений,
// по существу — пара координат
Scalar re, im;
public:
complex(const Scalar & r, const Scalar & i):re(r), im(i) { }
complex(const Scalar & r):re(r),im(Scalar ) { }
complex:re(Scalar ), im(Scalar ) { }
Scalar real { return re; } // действительная часть
Scalar imag { return im; } // мнимая часть
// операторы : = += –= *= /=
};
Кроме этих членов, в классе
Кроме того, к комплексным числам можно применять стандартные математические функции (см. раздел Б.9.2). Примечание: в классе complex
<
или %
(см. также раздел 24.9).Б.9.4. Класс valarray
Объект стандартного класса valarray
Matrix
из главы 24), а также срезы (slices) и шаги по индексу (strides).Б.9.5. Обобщенные числовые алгоритмы
Эти алгоритмы из раздела
Б.10. Функции стандартной библиотеки языка С
Стандартная библиотека языка С включена в стандартную библиотеку языка С++ с минимальными изменениями. В ней предусмотрено относительно небольшое количество функций, полезность которых подтверждена многолетним опытом использования в разнообразных предметных областях, особенно в низкоуровневом программировании. Библиотека языка С разделена на несколько категорий.
• Ввод-вывод в стиле языка C.
• Строки в стиле языка C.
• Управление памятью.
• Дата и время.
• Остальное.
Библиотека языка С содержит намного больше функций, чем описано в этой книге; рекомендуем читателям обратиться к хорошим учебникам по языку С, например, к книге Kernighan, Ritchie,
Б.10.1. Файлы
Система ввода-вывода, описанная в заголовке
FILE*
) может относиться как к файлу, так и к стандартным потокам ввода и вывода, stdin
, stdout
и stderr
. Стандартные потоки доступны по умолчанию; остальные файлы должны быть открыты явным образом.Режим — это строка, содержащая одну или несколько директив, определяющих, как именно должен быть открыт файл.
В конкретной операционной системе может быть (и, как правило, так и есть) больше возможностей. Некоторые режимы могут комбинироваться, например, инструкция fopen("foo","rb")
foo
для чтения в бинарном режиме. Режимы ввода-вывода для потоков из библиотек stdio
и iostream
должны быть одинаковыми (см. раздел Б.7.1)Б.10.2. Семейство функций printf
Наиболее популярными функциями в стандартной библиотеке языка С являются функции ввода-вывода. Тем не менее рекомендуем использовать библиотеку iostream
printf
используется очень широко (в том числе и в программах на языке C++) и часто имитируется в других языках программирования.В каждой версии число n
printf
, практически всегда игнорируется.Объявление функции printf