Skip to content

Commit fbd725c

Browse files
committed
Add multicolumnfloattable environment.
This environment lets us describe our multi-column tables containing lists of headers, library symbols, etc. in column-major order instead of in row-major order.
1 parent 591545d commit fbd725c

File tree

2 files changed

+177
-188
lines changed

2 files changed

+177
-188
lines changed

source/lib-intro.tex

Lines changed: 151 additions & 188 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,94 +1009,78 @@
10091009
\defnx{\Cpp{} library headers}{header!C++ library},
10101010
shown in \tref{cpp.library.headers}.
10111011

1012-
\begin{floattable}{\Cpp{} library headers}{tab:cpp.library.headers}
1012+
\begin{multicolfloattable}{\Cpp{} library headers}{tab:cpp.library.headers}
10131013
{llll}
1014-
\topline
1015-
\tcode{<algorithm>} &
1016-
\tcode{<functional>} &
1017-
\tcode{<numeric>} &
1014+
\tcode{<algorithm>} \\
1015+
\tcode{<any>} \\
1016+
\tcode{<array>} \\
1017+
\tcode{<atomic>} \\
1018+
\tcode{<bitset>} \\
1019+
\tcode{<charconv>} \\
1020+
\tcode{<chrono>} \\
1021+
\tcode{<codecvt>} \\
1022+
\tcode{<compare>} \\
1023+
\tcode{<complex>} \\
1024+
\tcode{<condition_variable>} \\
1025+
\tcode{<deque>} \\
1026+
\tcode{<exception>} \\
1027+
\tcode{<execution>} \\
1028+
\tcode{<filesystem>} \\
1029+
\tcode{<forward_list>} \\
1030+
\tcode{<fstream>} \\
1031+
\columnbreak
1032+
\tcode{<functional>} \\
1033+
\tcode{<future>} \\
1034+
\tcode{<initializer_list>} \\
1035+
\tcode{<iomanip>} \\
1036+
\tcode{<ios>} \\
1037+
\tcode{<iosfwd>} \\
1038+
\tcode{<iostream>} \\
1039+
\tcode{<istream>} \\
1040+
\tcode{<iterator>} \\
1041+
\tcode{<limits>} \\
1042+
\tcode{<list>} \\
1043+
\tcode{<locale>} \\
1044+
\tcode{<map>} \\
1045+
\tcode{<memory>} \\
1046+
\tcode{<memory_resource>} \\
1047+
\tcode{<mutex>} \\
1048+
\tcode{<new>} \\
1049+
\tcode{<numeric>} \\
1050+
\columnbreak
1051+
\tcode{<optional>} \\
1052+
\tcode{<ostream>} \\
1053+
\tcode{<queue>} \\
1054+
\tcode{<random>} \\
1055+
\tcode{<ratio>} \\
1056+
\tcode{<regex>} \\
1057+
\tcode{<scoped_allocator>} \\
1058+
\tcode{<set>} \\
1059+
\tcode{<shared_mutex>} \\
1060+
\tcode{<span>} \\
1061+
\tcode{<sstream>} \\
1062+
\tcode{<stack>} \\
1063+
\tcode{<stdexcept>} \\
1064+
\tcode{<streambuf>} \\
1065+
\tcode{<string>} \\
10181066
\tcode{<string_view>} \\
1019-
1020-
\tcode{<any>} &
1021-
\tcode{<future>} &
1022-
\tcode{<optional>} &
1067+
\tcode{<strstream>} \\
1068+
\columnbreak
10231069
\tcode{<syncstream>} \\
1024-
1025-
\tcode{<array>} &
1026-
\tcode{<initializer_list>} &
1027-
\tcode{<ostream>} &
10281070
\tcode{<system_error>} \\
1029-
1030-
\tcode{<atomic>} &
1031-
\tcode{<iomanip>} &
1032-
\tcode{<queue>} &
10331071
\tcode{<thread>} \\
1034-
1035-
\tcode{<bitset>} &
1036-
\tcode{<ios>} &
1037-
\tcode{<random>} &
10381072
\tcode{<tuple>} \\
1039-
1040-
\tcode{<charconv>} &
1041-
\tcode{<iosfwd>} &
1042-
\tcode{<ratio>} &
1043-
\tcode{<type_traits>} \\
1044-
1045-
\tcode{<chrono>} &
1046-
\tcode{<iostream>} &
1047-
\tcode{<regex>} &
10481073
\tcode{<typeindex>} \\
1049-
1050-
\tcode{<codecvt>} &
1051-
\tcode{<istream>} &
1052-
\tcode{<scoped_allocator>} &
10531074
\tcode{<typeinfo>} \\
1054-
1055-
\tcode{<compare>} &
1056-
\tcode{<iterator>} &
1057-
\tcode{<set>} &
1075+
\tcode{<type_traits>} \\
10581076
\tcode{<unordered_map>} \\
1059-
1060-
\tcode{<complex>} &
1061-
\tcode{<limits>} &
1062-
\tcode{<shared_mutex>} &
10631077
\tcode{<unordered_set>} \\
1064-
1065-
\tcode{<condition_variable>} &
1066-
\tcode{<list>} &
1067-
\tcode{<span>} &
10681078
\tcode{<utility>} \\
1069-
1070-
\tcode{<deque>} &
1071-
\tcode{<locale>} &
1072-
\tcode{<sstream>} &
10731079
\tcode{<valarray>} \\
1074-
1075-
\tcode{<exception>} &
1076-
\tcode{<map>} &
1077-
\tcode{<stack>} &
10781080
\tcode{<variant>} \\
1079-
1080-
\tcode{<execution>} &
1081-
\tcode{<memory>} &
1082-
\tcode{<stdexcept>} &
10831081
\tcode{<vector>} \\
1084-
1085-
\tcode{<filesystem>} &
1086-
\tcode{<memory_resource>} &
1087-
\tcode{<streambuf>} &
10881082
\tcode{<version>} \\
1089-
1090-
\tcode{<forward_list>} &
1091-
\tcode{<mutex>} &
1092-
\tcode{<strstream>} &
1093-
\\
1094-
1095-
\tcode{<fstream>} &
1096-
\tcode{<new>} &
1097-
\tcode{<string>} &
1098-
\\
1099-
\end{floattable}
1083+
\end{multicolfloattable}
11001084

11011085

11021086
\pnum
@@ -1109,44 +1093,39 @@
11091093
\tcode{<stdnoreturn.h>}\indextext{\idxhdr{stdnoreturn.h}!absence thereof},
11101094
\tcode{<threads.h>}\indextext{\idxhdr{threads.h}!absence thereof}.}
11111095

1112-
\begin{floattable}{\Cpp{} headers for C library facilities}{tab:cpp.c.headers}
1096+
\begin{multicolfloattable}{\Cpp{} headers for C library facilities}{tab:cpp.c.headers}
11131097
{lllll}
1114-
\topline
1115-
1116-
\tcode{<cassert>} &
1117-
\tcode{<cinttypes>} &
1118-
\tcode{<csignal>} &
1119-
\tcode{<cstdio>} &
1120-
\tcode{<cwchar>} \\
1121-
1122-
\tcode{<ccomplex>} &
1123-
\tcode{<ciso646>} &
1124-
\tcode{<cstdalign>} &
1125-
\tcode{<cstdlib>} &
1126-
\tcode{<cwctype>} \\
1127-
1128-
\tcode{<cctype>} &
1129-
\tcode{<climits>} &
1130-
\tcode{<cstdarg>} &
1131-
\tcode{<cstring>} & \\
1132-
1133-
\tcode{<cerrno>} &
1134-
\tcode{<clocale>} &
1135-
\tcode{<cstdbool>} &
1136-
\tcode{<ctgmath>} & \\
1137-
1138-
\tcode{<cfenv>} &
1139-
\tcode{<cmath>} &
1140-
\tcode{<cstddef>} &
1141-
\tcode{<ctime>} & \\
1142-
1143-
\tcode{<cfloat>} &
1144-
\tcode{<csetjmp>} &
1145-
\tcode{<cstdint>} &
1146-
\tcode{<cuchar>} & \\
1147-
1148-
1149-
\end{floattable}
1098+
\tcode{<cassert>} \\
1099+
\tcode{<ccomplex>} \\
1100+
\tcode{<cctype>} \\
1101+
\tcode{<cerrno>} \\
1102+
\tcode{<cfenv>} \\
1103+
\tcode{<cfloat>} \\
1104+
\columnbreak
1105+
\tcode{<cinttypes>} \\
1106+
\tcode{<ciso646>} \\
1107+
\tcode{<climits>} \\
1108+
\tcode{<clocale>} \\
1109+
\tcode{<cmath>} \\
1110+
\tcode{<csetjmp>} \\
1111+
\columnbreak
1112+
\tcode{<csignal>} \\
1113+
\tcode{<cstdalign>} \\
1114+
\tcode{<cstdarg>} \\
1115+
\tcode{<cstdbool>} \\
1116+
\tcode{<cstddef>} \\
1117+
\tcode{<cstdint>} \\
1118+
\columnbreak
1119+
\tcode{<cstdio>} \\
1120+
\tcode{<cstdlib>} \\
1121+
\tcode{<cstring>} \\
1122+
\tcode{<ctgmath>} \\
1123+
\tcode{<ctime>} \\
1124+
\tcode{<cuchar>} \\
1125+
\columnbreak
1126+
\tcode{<cwchar>} \\
1127+
\tcode{<cwctype>} \\
1128+
\end{multicolfloattable}
11501129

11511130
\pnum
11521131
Except as noted in \ref{library} through \ref{\lastlibchapter}
@@ -1211,102 +1190,86 @@
12111190
that may be declared in some header.
12121191
These names are also subject to the restrictions of~\ref{macro.names}.
12131192

1214-
\begin{floattable}{C standard Annex K names}{tab:c.annex.k.names}
1193+
\begin{multicolfloattable}{C standard Annex K names}{tab:c.annex.k.names}
12151194
{llll}
1216-
\topline
1217-
\tcode{abort_handler_s} &
1218-
\tcode{mbstowcs_s} &
1219-
\tcode{strncat_s} &
1195+
\tcode{abort_handler_s} \\
1196+
\tcode{asctime_s} \\
1197+
\tcode{bsearch_s} \\
1198+
\tcode{constraint_handler_t} \\
1199+
\tcode{ctime_s} \\
1200+
\tcode{errno_t} \\
1201+
\tcode{fopen_s} \\
1202+
\tcode{fprintf_s} \\
1203+
\tcode{freopen_s} \\
1204+
\tcode{fscanf_s} \\
1205+
\tcode{fwprintf_s} \\
1206+
\tcode{fwscanf_s} \\
1207+
\tcode{getenv_s} \\
1208+
\tcode{gets_s} \\
1209+
\tcode{gmtime_s} \\
1210+
\tcode{ignore_handler_s} \\
1211+
\tcode{localtime_s} \\
1212+
\tcode{L_tmpnam_s} \\
1213+
\tcode{mbsrtowcs_s} \\
1214+
\columnbreak
1215+
\tcode{mbstowcs_s} \\
1216+
\tcode{memcpy_s} \\
1217+
\tcode{memmove_s} \\
1218+
\tcode{memset_s} \\
1219+
\tcode{printf_s} \\
1220+
\tcode{qsort_s} \\
1221+
\tcode{RSIZE_MAX} \\
1222+
\tcode{rsize_t} \\
1223+
\tcode{scanf_s} \\
1224+
\tcode{set_constraint_handler_s} \\
1225+
\tcode{snprintf_s} \\
1226+
\tcode{snwprintf_s} \\
1227+
\tcode{sprintf_s} \\
1228+
\tcode{sscanf_s} \\
1229+
\tcode{strcat_s} \\
1230+
\tcode{strcpy_s} \\
1231+
\tcode{strerrorlen_s} \\
1232+
\tcode{strerror_s} \\
1233+
\tcode{strlen_s} \\
1234+
\columnbreak
1235+
\tcode{strncat_s} \\
1236+
\tcode{strncpy_s} \\
1237+
\tcode{strtok_s} \\
1238+
\tcode{swprintf_s} \\
1239+
\tcode{swscanf_s} \\
1240+
\tcode{tmpfile_s} \\
1241+
\tcode{TMP_MAX_S} \\
1242+
\tcode{tmpnam_s} \\
1243+
\tcode{vfprintf_s} \\
1244+
\tcode{vfscanf_s} \\
1245+
\tcode{vfwprintf_s} \\
1246+
\tcode{vfwscanf_s} \\
1247+
\tcode{vprintf_s} \\
1248+
\tcode{vscanf_s} \\
1249+
\tcode{vsnprintf_s} \\
1250+
\tcode{vsnwprintf_s} \\
1251+
\tcode{vsprintf_s} \\
1252+
\tcode{vsscanf_s} \\
1253+
\tcode{vswprintf_s} \\
1254+
\columnbreak
12201255
\tcode{vswscanf_s} \\
1221-
1222-
\tcode{asctime_s} &
1223-
\tcode{memcpy_s} &
1224-
\tcode{strncpy_s} &
12251256
\tcode{vwprintf_s} \\
1226-
1227-
\tcode{bsearch_s} &
1228-
\tcode{memmove_s} &
1229-
\tcode{strtok_s} &
12301257
\tcode{vwscanf_s} \\
1231-
1232-
\tcode{constraint_handler_t} &
1233-
\tcode{memset_s} &
1234-
\tcode{swprintf_s} &
12351258
\tcode{wcrtomb_s} \\
1236-
1237-
\tcode{ctime_s} &
1238-
\tcode{printf_s} &
1239-
\tcode{swscanf_s} &
12401259
\tcode{wcscat_s} \\
1241-
1242-
\tcode{errno_t} &
1243-
\tcode{qsort_s} &
1244-
\tcode{tmpfile_s} &
12451260
\tcode{wcscpy_s} \\
1246-
1247-
\tcode{fopen_s} &
1248-
\tcode{RSIZE_MAX} &
1249-
\tcode{TMP_MAX_S} &
12501261
\tcode{wcsncat_s} \\
1251-
1252-
\tcode{fprintf_s} &
1253-
\tcode{rsize_t} &
1254-
\tcode{tmpnam_s} &
12551262
\tcode{wcsncpy_s} \\
1256-
1257-
\tcode{freopen_s} &
1258-
\tcode{scanf_s} &
1259-
\tcode{vfprintf_s} &
12601263
\tcode{wcsnlen_s} \\
1261-
1262-
\tcode{fscanf_s} &
1263-
\tcode{set_constraint_handler_s} &
1264-
\tcode{vfscanf_s} &
12651264
\tcode{wcsrtombs_s} \\
1266-
1267-
\tcode{fwprintf_s} &
1268-
\tcode{snprintf_s} &
1269-
\tcode{vfwprintf_s} &
12701265
\tcode{wcstok_s} \\
1271-
1272-
\tcode{fwscanf_s} &
1273-
\tcode{snwprintf_s} &
1274-
\tcode{vfwscanf_s} &
12751266
\tcode{wcstombs_s} \\
1276-
1277-
\tcode{getenv_s} &
1278-
\tcode{sprintf_s} &
1279-
\tcode{vprintf_s} &
12801267
\tcode{wctomb_s} \\
1281-
1282-
\tcode{gets_s} &
1283-
\tcode{sscanf_s} &
1284-
\tcode{vscanf_s} &
12851268
\tcode{wmemcpy_s} \\
1286-
1287-
\tcode{gmtime_s} &
1288-
\tcode{strcat_s} &
1289-
\tcode{vsnprintf_s} &
12901269
\tcode{wmemmove_s} \\
1291-
1292-
\tcode{ignore_handler_s} &
1293-
\tcode{strcpy_s} &
1294-
\tcode{vsnwprintf_s} &
12951270
\tcode{wprintf_s} \\
1296-
1297-
\tcode{L_tmpnam_s} &
1298-
\tcode{strerror_s} &
1299-
\tcode{vsprintf_s} &
13001271
\tcode{wscanf_s} \\
1301-
1302-
\tcode{localtime_s} &
1303-
\tcode{strerrorlen_s} &
1304-
\tcode{vsscanf_s} & \\
1305-
1306-
\tcode{mbsrtowcs_s} &
1307-
\tcode{strlen_s} &
1308-
\tcode{vswprintf_s} & \\
1309-
\end{floattable}
1272+
\end{multicolfloattable}
13101273

13111274
\rSec3[compliance]{Freestanding implementations}
13121275

0 commit comments

Comments
 (0)