Namespaces
Variants

Standard library header <charconv> (C++17)

From cppreference.net
Standard library headers

此头文件属于 文本处理 库的一部分。

std::to_chars std::from_chars 指定格式化方式
(枚举)
std::from_chars 的返回类型
(类)
std::to_chars 的返回类型
(类)

函数

(C++17)
将字符序列转换为整型或浮点型值
(函数)
(C++17)
将整型或浮点型值转换为字符序列
(函数)

概要

namespace std {
  // 基本数值转换的浮点格式
  enum class chars_format {
    scientific = /* unspecified */,
    fixed = /* unspecified */,
    hex = /* unspecified */,
    general = fixed | scientific
  };
  // 基本数值输出转换
  struct to_chars_result { // 独立实现
    char* ptr;
    errc ec;
    friend bool operator==(const to_chars_result&, const to_chars_result&) = default;
    constexpr explicit operator bool() const noexcept { return ec == errc{}; }
  };
  constexpr
  to_chars_result to_chars(char* first, char* last, // 独立实现
                           /* integer-type */ value, int base = 10);
  to_chars_result to_chars(char* first, char* last, // 独立实现
                           bool value, int base = 10) = delete;
  to_chars_result to_chars(char* first, char* last, // 独立实现-已删除
                           /* floating-point-type */ value);
  to_chars_result to_chars(char* first, char* last, // 独立实现-已删除
                           /* floating-point-type */ value, chars_format fmt);
  to_chars_result to_chars(char* first, char* last, // 独立实现-已删除
                           /* floating-point-type */ value,
                           chars_format fmt, int precision);
  // 基本数值输入转换
  struct from_chars_result { // 独立实现
    const char* ptr;
    errc ec;
    friend bool operator==(const from_chars_result&, const from_chars_result&) = default;
    constexpr explicit operator bool() const noexcept { return ec == errc{}; }
  };
  constexpr
  from_chars_result from_chars(const char* first, // 独立实现
                               const char* last, /* integer-type */& value,
                               int base = 10);
  from_chars_result from_chars(const char* first, // 独立实现-已删除
                               const char* last, /* floating-point-type */& value,
                               chars_format fmt = chars_format::general);
}