C++ 参考手册
- C++11
- C++14
- C++17
- C++20
- C++ 编译器支持情况表
- 独立与宿主实现
- C++ 语言
- C++ 关键词
- 预处理器
- C++ 标准库头文件
- 标准库头文件 <ctime>
- 标准库头文件 <cstring>
- 标准库头文件 <set>
- 标准库头文件 <cctype>
- 标准库头文件 <cwctype>
- 标准库头文件 <utility>
- 标准库头文件 <queue>
- 标准库头文件 <complex>
- 标准库头文件 <iterator>
- 标准库头文件 <algorithm>
- 标准库头文件 <valarray>
- 标准库头文件 <numeric>
- 标准库头文件 <cmath>
- 标准库头文件 <iosfwd>
- 标准库头文件 <ios>
- 标准库头文件 <iomanip>
- 标准库头文件 <streambuf>
- 标准库头文件 <istream>
- 标准库头文件 <ostream>
- 标准库头文件 <iostream>
- 标准库头文件 <sstream>
- 标准库头文件 <clocale>
- 标准库头文件 <vector>
- 标准库头文件 <deque>
- 标准库头文件 <list>
- 标准库头文件 <map>
- 标准库头文件 <cwchar>
- 标准库头文件 <locale>
- 标准库头文件 <codecvt>
- 标准库头文件 <bitset>
- 标准库头文件 <functional>
- 标准库头文件 <stdexcept>
- 标准库头文件 <csignal>
- 标准库头文件 <csetjmp>
- 标准库头文件 <stack>
- 标准库头文件 <cassert>
- 标准库头文件 <cerrno>
- 标准库头文件 <memory>
- 标准库头文件 <typeindex>
- 标准库头文件 <type_traits>
- 标准库头文件 <chrono>
- 标准库头文件 <initializer_list>
- 标准库头文件 <tuple>
- 标准库头文件 <scoped_allocator>
- 标准库头文件 <cstdint>
- 标准库头文件 <cinttypes>
- 标准库头文件 <system_error>
- 标准库头文件 <cuchar>
- 标准库头文件 <array>
- 标准库头文件 <forward_list>
- 标准库头文件 <unordered_set>
- 标准库头文件 <unordered_map>
- 标准库头文件 <random>
- 标准库头文件 <ratio>
- 标准库头文件 <cfenv>
- 标准库头文件 <regex>
- 标准库头文件 <atomic>
- 标准库头文件 <thread>
- 标准库头文件 <mutex>
- 标准库头文件 <future>
- 标准库头文件 <condition_variable>
- 标准库头文件 <any>
- 标准库头文件 <optional>
- 标准库头文件 <variant>
- 标准库头文件 <memory_resource>
- 标准库头文件 <string_view>
- 标准库头文件 <charconv>
- 标准库头文件 <execution>
- 标准库头文件 <filesystem>
- 标准库头文件 <concepts>
- 标准库头文件 <coroutine>
- 标准库头文件 <compare>
- 标准库头文件 <version>
- 标准库头文件 <source_location>
- 标准库头文件 <format>
- 标准库头文件 <span>
- 标准库头文件 <ranges>
- 标准库头文件 <bit>
- 标准库头文件 <numbers>
- 标准库头文件 <syncstream>
- 标准库头文件 <stop_token>
- 标准库头文件 <semaphore>
- 标准库头文件 <latch>
- 标准库头文件 <barrier>
- 标准库头文件 <string>
- 标准库头文件 <cstddef>
- 标准库头文件 <limits>
- 标准库头文件 <cfloat>
- 标准库头文件 <climits>
- 标准库头文件 <cstdlib>
- 标准库头文件 <new>
- 标准库头文件 <typeinfo>
- 标准库头文件 <exception>
- 标准库头文件 <cstdarg>
- 标准库头文件 <ciso646>
- 标准库头文件 <cstdalign>
- 标准库头文件 <cstdbool>
- 标准库头文件 <fstream>
- 标准库头文件 <cstdio>
- 标准库头文件 <strstream>
- 标准库头文件 <shared_mutex>
- 标准库头文件 <ccomplex>
- 标准库头文件 <ctgmath>
- 注释
- 具名要求
- 功能特性测试 (C++20)
- 工具库
- 类型支持(基本类型、RTTI、类型特性)
- 概念库 (C++20)
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 容器库
- 迭代器库
- 范围库 (C++20)
- 算法库
- 数值库
- 输入/输出库
- 文件系统库
- 本地化库
- 正则表达式库
- 原子操作库
- 线程支持库
- 实验性 C++ 特性
- 有用的资源
- 索引
- std 符号索引
- 协程支持 (C++20)
- C++ 关键词
C++ 标准库头文件
C++ 标准库的接口由下列头文件的汇集定义。
C 兼容头文件
对于一些拥有 xxx.h 形式的 C 标准库头文件,C++ 标准库同时包含同名的头文件和拥有形式cxxx的头文件(所有有意义的 cxxx 头文件列于上方)。
除了 complex.h 这一例外,C++ 标准库中包含的每个 xxx.h 头文件都将其对应的 cxxx 中本应置于 std 命名空间中的每个名字放在全局命名空间中。
允许这些头文件也在 std 命名空间中声明同样的名字,而且允许对应的 cxxx 头文件也在全局命名空间中声明同样的名字:包含 <cstdlib> 肯定会提供 std::malloc,亦可提供 ::malloc。包含 <stdlib.h> 肯定会提供 ::malloc,亦可提供 std::malloc。这甚至适用于并非 C 标准库一部分的函数和函数重载。
<assert.h> (弃用)
|
表现如同每个来自 <cassert> 的名字被放入全局命名空间 |
<ctype.h> (弃用)
|
表现如同每个来自 <cctype> 的名字被放入全局命名空间 |
<errno.h> (弃用)
|
表现如同每个来自 <cerrno> 的名字被放入全局命名空间 |
<fenv.h> (弃用)
|
表现如同每个来自 <cfenv> 的名字被放入全局命名空间 |
<float.h> (弃用)
|
表现如同每个来自 <cfloat> 的名字被放入全局命名空间 |
<inttypes.h> (弃用)
|
表现如同每个来自 <cinttypes> 的名字被放入全局命名空间 |
<limits.h> (弃用)
|
表现如同每个来自 <climits> 的名字被放入全局命名空间 |
<locale.h> (弃用)
|
表现如同每个来自 <clocale> 的名字被放入全局命名空间 |
<math.h> (弃用)
|
表现如同每个来自 <cmath> 的名字被放入全局命名空间, 除了数学特殊函数的名字 |
<setjmp.h> (弃用)
|
表现如同每个来自 <csetjmp> 的名字被放入全局命名空间 |
<signal.h> (弃用)
|
表现如同每个来自 <csignal> 的名字被放入全局命名空间 |
<stdarg.h> (弃用)
|
表现如同每个来自 <cstdarg> 的名字被放入全局命名空间 |
<stddef.h> (弃用)
|
表现如同每个来自 <cstddef> 的名字被放入全局命名空间, 除了 std::byte 及其相关函数的名字
|
<stdint.h> (弃用)
|
表现如同每个来自 <cstdint> 的名字被放入全局命名空间 |
<stdio.h> (弃用)
|
表现如同每个来自 <cstdio> 的名字被放入全局命名空间 |
<stdlib.h> (弃用)
|
表现如同每个来自 <cstdlib> 的名字被放入全局命名空间 |
<string.h> (弃用)
|
表现如同每个来自 <cstring> 的名字被放入全局命名空间 |
<time.h> (弃用)
|
表现如同每个来自 <ctime> 的名字被放入全局命名空间 |
<uchar.h> (弃用)
|
表现如同每个来自 <cuchar> 的名字被放入全局命名空间 |
<wchar.h> (弃用)
|
表现如同每个来自 <cwchar> 的名字被放入全局命名空间 |
<wctype.h> (弃用)
|
表现如同每个来自 <cwctype> 的名字被放入全局命名空间 |
空 C 头文件
头文件 <complex.h>
、<ccomplex>
、<tgmath.h>
及 <ctgmath>
不含有任何来自 C 标准库的内容,而且不过是包含其他来自 C++ 标准库的头文件。C++ 中这些头文件的使用均已被弃用。
<ccomplex> (C++11 起)(C++17 中弃用)(C++20 中移除)
|
简单地包含 <complex> |
<complex.h> (弃用)
|
简单地包含头文件 <complex> |
<ctgmath> (C++11 起)(C++17 中弃用)(C++20 中移除)
|
简单地包含 <complex> 及 <cmath> :等价于 C 头文件 tgmath.h 内容的重载已经在这些头文件中提供
|
<tgmath.h> (弃用)
|
简单地包含头文件 <complex> 和 <cmath> |
无意义的 C 头文件
头文件 <ciso646>
、<cstdalign>
及 <cstdbool>
在 C++ 中无意义,因为它们在 C 中提供的宏是 C++ 的关键词。
<ciso646> (C++20 中移除)
|
空头文件。C 中出现于 iso646.h 的宏是 C++ 的关键词
|
<iso646.h> (弃用)
|
无效果 |
<cstdalign> (C++11 起)(C++17 中弃用)(C++20 中移除)
|
定义一个兼容性宏常量 |
<stdalign.h> (弃用)
|
定义一个兼容性宏常量 |
<cstdbool> (C++11 起)(C++17 中弃用)(C++20 中移除)
|
定义一个兼容性宏常量 |
<stdbool.h> (弃用)
|
定义一个兼容性宏常量 |
不受支持的 C 头文件
C++ 不包含 C 头文件 <stdatomic.h>
、<stdnoreturn.h>
及 <threads.h>
而且它们无 cxxx 等价版本。
实验性库
C++ TR/TS 亦定义数个头文件的汇集。