23 General utilities library [utilities]

23.2 Utility components [utility]

23.2.8 Primitive numeric output conversion [utility.to.chars]

Все названные функции to_­chars преобразуются value в символьную строку, последовательно заполняя диапазон [first, last), где [first, last) должен быть допустимый диапазон. Если член ec возвращаемого значения таков , что значение, при преобразовании bool, является falseпереход был успешным , и членом ptr является один пришедшей к конец указатель из записанных символов. В противном случае член ec имеет значение errc​::​value_­too_­large, член ptr имеет значение last, а содержимое диапазона [first, last) не указано.

Функции, которые принимают число с плавающей запятой, value но не precision параметр, гарантируют, что строковое представление состоит из наименьшего количества символов, так что есть хотя бы одна цифра перед точкой счисления (если есть), и анализ представления с использованием соответствующей from_­chars функции восстанавливает value точно . [ Note: Эта гарантия применяется, только если to_­chars и from_­chars выполняются в одной и той же реализации. ]end note

Функции , принимая chars_­format параметр определяет спецификатор преобразования для printf следующим образом : спецификатор преобразования ,f если fmt это chars_­format​::​fixed, e если fmt это chars_­format​::​scientific, a (не приводя "0x" в результате) , если fmt это chars_­format​::​hex, и g если fmt это chars_­format​::​general.

to_chars_result to_chars(char* first, char* last, see below value, int base = 10);

Requires: base имеет значение от 2 до 36 (включительно).

Effects: Значение value преобразуется в строку цифр с заданным основанием (без повторяющихся нулей в начале). Цифры в диапазоне 10..35 (включительно) представлены в виде символов в нижнем регистре a..z. Если value меньше нуля, представление начинается со знака минус.

Throws: Ничего такого.

Remarks: Реализация должна обеспечивать перегрузки для всех целочисленных типов со знаком и без знака, а char также для типа параметра value.

to_chars_result to_chars(char* first, char* last, float value); to_chars_result to_chars(char* first, char* last, double value); to_chars_result to_chars(char* first, char* last, long double value);

Effects: value преобразуется в строку в стиле printf в "C" локали. Спецификатор преобразования f или e, выбирается в соответствии с потребностью в кратчайшее представление (смотрите выше); ничья разрешается в пользу f.

Throws: Ничего такого.

to_chars_result to_chars(char* first, char* last, float value, chars_format fmt); to_chars_result to_chars(char* first, char* last, double value, chars_format fmt); to_chars_result to_chars(char* first, char* last, long double value, chars_format fmt);

Requires: fmt имеет значение одного из перечислителей chars_­format.

Effects: value преобразуется в строку в стиле printf в "C" локали.

Throws: Ничего такого.

to_chars_result to_chars(char* first, char* last, float value, chars_format fmt, int precision); to_chars_result to_chars(char* first, char* last, double value, chars_format fmt, int precision); to_chars_result to_chars(char* first, char* last, long double value, chars_format fmt, int precision);

Requires: fmt имеет значение одного из перечислителей chars_­format.

Effects: value преобразуются в строку в стиле printf в "C" местности с заданной точностью.

Throws: Ничего такого.

См. Также: ISO C 7.21.6.1.