Все названные функции 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);
Effects: Значение value преобразуется в строку цифр с заданным основанием (без повторяющихся нулей в начале). Цифры в диапазоне 10..35 (включительно) представлены в виде символов в нижнем регистре a..z. Если value меньше нуля, представление начинается со знака минус.
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.
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);
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);
См. Также: ISO C 7.21.6.1.