Сколько заголовочных файлов в стандарте c ++? - PullRequest
5 голосов
/ 15 октября 2010

В C89 есть 15 заголовочных файлов:

<assert.h>  <locale.h>  <stddef.h>  <ctype.h>  <math.h>
<stdio.h>  <errno.h>  <setjmp.h>  <stdlib.h>  <float.h>
<signal.h>  <string.h>  <limits.h>  <stdarg.h>  <time.h>

А как насчет стандарта с ++?

Ответы [ 3 ]

8 голосов
/ 15 октября 2010

33 C ++ - специфические:

<algorithm>    <iomanip>    <list>      <queue>       <streambuf>
<bitset>       <ios>        <locale>    <set>         <string>
<complex>      <iosfwd>     <map>       <sstream>     <typeinfo>
<deque>        <iostream>   <memory>    <stack>       <utility>
<exception>    <istream>    <new>       <stdexcept>   <valarray>
<fstream>      <iterator>   <numeric>   <strstream>   <vector>
<functional>   <limits>     <ostream>

Плюс 18 заимствовано из C:

<cassert> <ciso646> <csetjmp> <cstdio>  <ctime>
<cctype>  <climits> <csignal> <cstdlib> <cwchar>
<cerrno>  <clocale> <cstdarg> <cstring> <cwctype>
<cfloat>  <cmath>   <cstddef>

(<iso646.h>, <wchar.h> и <wctype.h> были добавлены к стандарту C в 1995 году)

1 голос
/ 14 марта 2014

75 всего я насчитал:

(24 из C-библиотеки, 11 контейнеров, 9 операций ввода-вывода, 5 многопоточности, 26 других)

0 голосов
/ 15 октября 2010

Стандарт не указывает, что стандартные заголовки вообще реализованы как файлы. Возьмем, к примеру, <iostream>: это не обязательно должно соответствовать файлу на диске (на что указывает отсутствие расширения .h имени файла). Может быть использован любой подходящий (если уместность определяется продавцом) механизм сохранения. Кроме того, любой поставщик библиотек может разбить заголовки на произвольные субъединицы любым способом, который он сочтет нужным, если открыт тот же интерфейс.

...