Skip to content

Commit bd05247

Browse files
committed
Replace cross-references from C++17 with cross-references from C++20.
Also add automatic checking that we have the right set of entries in this index.
1 parent be5fa97 commit bd05247

File tree

5 files changed

+2552
-265
lines changed

5 files changed

+2552
-265
lines changed

source/back.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ \chapter{Bibliography}
3939

4040
\clearpage
4141
\input{xrefdelta}
42-
\renewcommand{\glossaryname}{Cross references from ISO \CppXVII{}}
42+
\renewcommand{\glossaryname}{Cross references from ISO \CppXX{}}
4343
\renewcommand{\preglossaryhook}{All clause and subclause labels from
44-
ISO \CppXVII{} (ISO/IEC 14882:2017, \doccite{Programming Languages --- \Cpp{}})
44+
ISO \CppXX{} (ISO/IEC 14882:2020, \doccite{Programming Languages --- \Cpp{}})
4545
are present in this document, with the exceptions described below.\\}
4646
\renewcommand{\leftmark}{\glossaryname}
4747
{

source/macros.tex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,7 @@
243243
\newcommand{\CppXI}{\Cpp{} 2011}
244244
\newcommand{\CppXIV}{\Cpp{} 2014}
245245
\newcommand{\CppXVII}{\Cpp{} 2017}
246+
\newcommand{\CppXX}{\Cpp{} 2020}
246247
\newcommand{\opt}[1]{#1\ensuremath{_\mathit{\color{black}opt}}}
247248
\newcommand{\dcr}{-{-}}
248249
\newcommand{\bigoh}[1]{\ensuremath{\mathscr{O}(#1)}}

source/xrefdelta.tex

Lines changed: 1 addition & 263 deletions
Original file line numberDiff line numberDiff line change
@@ -16,274 +16,12 @@
1616

1717
% Removed features.
1818
%\removedxref{removed.label}
19-
\removedxref{variant.traits}
20-
21-
% [facets.examples] was removed.
22-
\removedxref{facets.examples}
2319

2420
% Renamed sections.
2521
%\movedxref{old.label}{new.label}
2622
%\movedxrefii{old.label}{new.label.1}{new.label.2}
2723
%\movedxrefiii{old.label}{new.label.1}{new.label.2}{new.label.3}
2824
%\movedxrefs{old.label}{new place (eg \tref{blah})}
2925

30-
% P0588 replaced function prototype scope with function parameter scope.
31-
\movedxref{basic.scope.proto}{basic.scope.param}
32-
33-
\movedxref{expr.pseudo}{expr.prim.id.dtor}
34-
35-
\movedxref{utility.from.chars}{charconv.from.chars}
36-
\movedxref{utility.to.chars}{charconv.to.chars}
37-
38-
% [fs.definitions] and its contents were integrated into the main text.
39-
% Note that ISO C++17 does not contain the [fs.def.*] subclauses.
40-
\movedxrefs{fs.definitions}{%
41-
\secref{fs.class.path},
42-
\secref{fs.conform.os},
43-
\secref{fs.general},
44-
\secref{fs.path.fmt.cvt},
45-
\secref{fs.path.generic},
46-
\secref{fs.race.behavior}}
47-
48-
% Single-item array subclauses were dissolved.
49-
\movedxref{array.size}{array.members}
50-
\movedxref{array.data}{array.members}
51-
\movedxref{array.fill}{array.members}
52-
\movedxref{array.swap}{array.members}
53-
54-
% Contents of [util.smartptr] was integrated into the parent.
55-
\removedxref{util.smartptr}
56-
57-
% Avoid duplication with synopsis.
58-
\movedxref{re.regex.const}{re.regex}
59-
60-
% Single-item [insert.iterators] subclauses were dissolved.
61-
\movedxref{back.insert.iter.cons}{back.insert.iter.ops}
62-
\movedxref{back.insert.iter.op=}{back.insert.iter.ops}
63-
\movedxref{back.insert.iter.op*}{back.insert.iter.ops}
64-
\movedxref{back.insert.iter.op++}{back.insert.iter.ops}
65-
66-
\movedxref{front.insert.iter.cons}{front.insert.iter.ops}
67-
\movedxref{front.insert.iter.op=}{front.insert.iter.ops}
68-
\movedxref{front.insert.iter.op*}{front.insert.iter.ops}
69-
\movedxref{front.insert.iter.op++}{front.insert.iter.ops}
70-
71-
\movedxref{insert.iter.cons}{insert.iter.ops}
72-
\movedxref{insert.iter.op=}{insert.iter.ops}
73-
\movedxref{insert.iter.op*}{insert.iter.ops}
74-
\movedxref{insert.iter.op++}{insert.iter.ops}
75-
76-
% Single-item [reverse.iterators] subclauses were dissolved.
77-
\movedxref{reverse.iter.op=}{reverse.iter.cons}
78-
79-
\movedxref{reverse.iter.op==}{reverse.iter.cmp}
80-
\movedxref{reverse.iter.op<}{reverse.iter.cmp}
81-
\movedxref{reverse.iter.op!=}{reverse.iter.cmp}
82-
\movedxref{reverse.iter.op>}{reverse.iter.cmp}
83-
\movedxref{reverse.iter.op>=}{reverse.iter.cmp}
84-
\movedxref{reverse.iter.op<=}{reverse.iter.cmp}
85-
86-
\movedxref{reverse.iter.op.star}{reverse.iter.elem}
87-
\movedxref{reverse.iter.opref}{reverse.iter.elem}
88-
\movedxref{reverse.iter.opindex}{reverse.iter.elem}
89-
90-
\movedxref{reverse.iter.op+}{reverse.iter.nav}
91-
\movedxref{reverse.iter.op-}{reverse.iter.nav}
92-
\movedxref{reverse.iter.op++}{reverse.iter.nav}
93-
\movedxref{reverse.iter.op+=}{reverse.iter.nav}
94-
\movedxref{reverse.iter.op\dcr}{reverse.iter.nav}
95-
\movedxref{reverse.iter.op-=}{reverse.iter.nav}
96-
97-
\movedxref{reverse.iter.opdiff}{reverse.iter.nonmember}
98-
\movedxref{reverse.iter.opsum}{reverse.iter.nonmember}
99-
\movedxref{reverse.iter.make}{reverse.iter.nonmember}
100-
101-
\removedxref{reverse.iter.ops}
102-
103-
% Single-item [move.iterators] subclauses were dissolved.
104-
\movedxref{move.iter.op=}{move.iter.cons}
105-
\movedxref{move.iter.op.const}{move.iter.cons}
106-
107-
\movedxref{move.iter.op.star}{move.iter.elem}
108-
\movedxref{move.iter.op.ref}{move.iter.elem}
109-
\movedxref{move.iter.op.index}{move.iter.elem}
110-
111-
\movedxref{move.iter.op.+}{move.iter.nav}
112-
\movedxref{move.iter.op.-}{move.iter.nav}
113-
\movedxref{move.iter.op.incr}{move.iter.nav}
114-
\movedxref{move.iter.op.+=}{move.iter.nav}
115-
\movedxref{move.iter.op.decr}{move.iter.nav}
116-
\movedxref{move.iter.op.-=}{move.iter.nav}
117-
118-
\removedxref{move.iter.ops}
119-
120-
% Individual swap sections were removed.
121-
\removedxref{deque.special}
122-
\removedxref{forwardlist.spec}
123-
\removedxref{list.special}
124-
\removedxref{vector.special}
125-
\removedxref{map.special}
126-
\removedxref{multimap.special}
127-
\removedxref{set.special}
128-
\removedxref{multiset.special}
129-
\removedxref{unord.map.swap}
130-
\removedxref{unord.multimap.swap}
131-
\removedxref{unord.set.swap}
132-
\removedxref{unord.multiset.swap}
133-
\movedxref{re.regex.nmswap}{re.regex.nonmemb}
134-
135-
% Deprecated features were removed.
136-
\removedxref{depr.except.spec}
137-
\removedxref{depr.cpp.headers}
138-
\removedxref{depr.uncaught}
139-
\removedxref{depr.func.adaptor.binding}
140-
\removedxref{depr.weak.result_type}
141-
\removedxref{depr.func.adaptor.typedefs}
142-
\removedxref{depr.negators}
143-
\removedxref{depr.default.allocator}
144-
\removedxref{depr.storage.iterator}
145-
\removedxref{depr.temporary.buffer}
146-
\removedxref{depr.util.smartptr.shared.obs}
147-
148-
% Deprecated <cfoo> headers were removed for some <foo.h> headers
149-
\movedxref{depr.ccomplex.syn}{depr.complex.h.syn}
150-
\movedxref{depr.cstdalign.syn}{depr.stdalign.h.syn}
151-
\movedxref{depr.cstdbool.syn}{depr.stdbool.h.syn}
152-
\movedxref{depr.ctgmath.syn}{depr.tgmath.h.syn}
153-
154-
\movedxref{class.copy}{class.mem}
155-
156-
% Top-level clause merging caused some Annex A subclauses to vanish.
157-
\movedxref{gram.decl}{gram.dcl.decl}
158-
\movedxref{gram.derived}{gram.class}
159-
\movedxref{gram.special}{gram.class}
160-
161-
% Top-level clause merging caused some Annex C subclauses to vanish, too.
162-
\movedxref{diff.conv}{diff.expr}
163-
\movedxref{diff.decl}{diff.dcl}
164-
\movedxref{diff.special}{diff.class}
165-
\movedxref{diff.cpp03.conv}{diff.cpp03.expr}
166-
\movedxref{diff.cpp03.dcl.decl}{diff.cpp03.dcl.dcl}
167-
\movedxref{diff.cpp03.special}{diff.cpp03.class}
168-
\movedxref{diff.cpp11.dcl.decl}{diff.cpp11.dcl.dcl}
169-
\movedxref{diff.cpp14.decl}{diff.cpp14.dcl.dcl}
170-
\movedxref{diff.cpp14.special}{diff.cpp14.class}
171-
172-
% P1148R0 consolidated some Clause 20 subclauses.
173-
\movedxref{string.rfind}{string.find}
174-
\movedxref{string.find.first.of}{string.find}
175-
\movedxref{string.find.last.of}{string.find}
176-
\movedxref{string.find.first.not.of}{string.find}
177-
\movedxref{string.find.last.not.of}{string.find}
178-
\movedxref{string.op+=}{string.op.append}
179-
\movedxref{string.op+}{string.op.plus}
180-
\movedxref{string.operator==}{string.cmp}
181-
\movedxref{string.op!=}{string.cmp}
182-
\movedxref{string.op<}{string.cmp}
183-
\movedxref{string.op>}{string.cmp}
184-
\movedxref{string.op<=}{string.cmp}
185-
\movedxref{string.op>=}{string.cmp}
186-
187-
\movedxref{istream::sentry}{istream.sentry}
188-
\movedxref{ostream::sentry}{ostream.sentry}
189-
\movedxref{ios::failure}{ios.failure}
190-
\movedxref{ios::fmtflags}{ios.fmtflags}
191-
\movedxref{ios::iostate}{ios.iostate}
192-
\movedxref{ios::openmode}{ios.openmode}
193-
\movedxref{ios::seekdir}{ios.seekdir}
194-
\movedxref{ios::Init}{ios.init}
195-
196-
\movedxref{thread.decaycopy}{expos.only.func}
197-
198-
\movedxref{iterator.container}{iterator.range}
199-
200-
% Remove underscores in stable labels.
201-
\movedxref{alg.all_of}{alg.all.of}
202-
\movedxref{alg.any_of}{alg.any.of}
203-
\movedxref{alg.is_permutation}{alg.is.permutation}
204-
\movedxref{alg.none_of}{alg.none.of}
205-
\movedxref{any.bad_any_cast}{any.bad.any.cast}
206-
\movedxref{char.traits.specializations.char16_t}{char.traits.specializations.char16.t}
207-
\movedxref{char.traits.specializations.char32_t}{char.traits.specializations.char32.t}
208-
\movedxref{comparisons.equal_to}{comparisons.equal.to}
209-
\movedxref{comparisons.greater_equal}{comparisons.greater.equal}
210-
\movedxref{comparisons.less_equal}{comparisons.less.equal}
211-
\movedxref{comparisons.not_equal_to}{comparisons.not.equal.to}
212-
\movedxref{condition_variable.syn}{condition.variable.syn}
213-
\movedxref{depr.static_constexpr}{depr.static.constexpr}
214-
\movedxref{forward_list.syn}{forward.list.syn}
215-
\movedxref{fs.class.directory_entry}{fs.class.directory.entry}
216-
\movedxref{fs.class.directory_iterator}{fs.class.directory.iterator}
217-
\movedxref{fs.class.file_status}{fs.class.file.status}
218-
\movedxref{fs.class.filesystem_error}{fs.class.filesystem.error}
219-
\movedxref{fs.enum.file_type}{fs.enum.file.type}
220-
\movedxref{fs.file_status.cons}{fs.file.status.cons}
221-
\movedxref{fs.file_status.mods}{fs.file.status.mods}
222-
\movedxref{fs.file_status.obs}{fs.file.status.obs}
223-
\movedxref{fs.filesystem_error.members}{fs.filesystem.error.members}
224-
\movedxref{fs.op.copy_file}{fs.op.copy.file}
225-
\movedxref{fs.op.copy_symlink}{fs.op.copy.symlink}
226-
\movedxref{fs.op.create_directories}{fs.op.create.directories}
227-
\movedxref{fs.op.create_directory}{fs.op.create.directory}
228-
\movedxref{fs.op.create_dir_symlk}{fs.op.create.dir.symlk}
229-
\movedxref{fs.op.create_hard_lk}{fs.op.create.hard.lk}
230-
\movedxref{fs.op.create_symlink}{fs.op.create.symlink}
231-
\movedxref{fs.op.current_path}{fs.op.current.path}
232-
\movedxref{fs.op.file_size}{fs.op.file.size}
233-
\movedxref{fs.op.hard_lk_ct}{fs.op.hard.lk.ct}
234-
\movedxref{fs.op.is_block_file}{fs.op.is.block.file}
235-
\movedxref{fs.op.is_char_file}{fs.op.is.char.file}
236-
\movedxref{fs.op.is_directory}{fs.op.is.directory}
237-
\movedxref{fs.op.is_empty}{fs.op.is.empty}
238-
\movedxref{fs.op.is_fifo}{fs.op.is.fifo}
239-
\movedxref{fs.op.is_other}{fs.op.is.other}
240-
\movedxref{fs.op.is_regular_file}{fs.op.is.regular.file}
241-
\movedxref{fs.op.is_socket}{fs.op.is.socket}
242-
\movedxref{fs.op.is_symlink}{fs.op.is.symlink}
243-
\movedxref{fs.op.last_write_time}{fs.op.last.write.time}
244-
\movedxref{fs.op.read_symlink}{fs.op.read.symlink}
245-
\movedxref{fs.op.remove_all}{fs.op.remove.all}
246-
\movedxref{fs.op.resize_file}{fs.op.resize.file}
247-
\movedxref{fs.op.status_known}{fs.op.status.known}
248-
\movedxref{fs.op.symlink_status}{fs.op.symlink.status}
249-
\movedxref{fs.op.temp_dir_path}{fs.op.temp.dir.path}
250-
\movedxref{fs.op.weakly_canonical}{fs.op.weakly.canonical}
251-
\movedxref{func.not_fn}{func.not.fn}
252-
\movedxref{futures.future_error}{futures.future.error}
253-
\movedxref{futures.shared_future}{futures.shared.future}
254-
\movedxref{futures.unique_future}{futures.unique.future}
255-
\movedxref{initializer_list.syn}{initializer.list.syn}
256-
\movedxref{optional.comp_with_t}{optional.comp.with.t}
257-
\movedxref{sf.cmath.assoc_laguerre}{sf.cmath.assoc.laguerre}
258-
\movedxref{sf.cmath.assoc_legendre}{sf.cmath.assoc.legendre}
259-
\movedxref{sf.cmath.comp_ellint_1}{sf.cmath.comp.ellint.1}
260-
\movedxref{sf.cmath.comp_ellint_2}{sf.cmath.comp.ellint.2}
261-
\movedxref{sf.cmath.comp_ellint_3}{sf.cmath.comp.ellint.3}
262-
\movedxref{sf.cmath.cyl_bessel_i}{sf.cmath.cyl.bessel.i}
263-
\movedxref{sf.cmath.cyl_bessel_j}{sf.cmath.cyl.bessel.j}
264-
\movedxref{sf.cmath.cyl_bessel_k}{sf.cmath.cyl.bessel.k}
265-
\movedxref{sf.cmath.cyl_neumann}{sf.cmath.cyl.neumann}
266-
\movedxref{sf.cmath.ellint_1}{sf.cmath.ellint.1}
267-
\movedxref{sf.cmath.ellint_2}{sf.cmath.ellint.2}
268-
\movedxref{sf.cmath.ellint_3}{sf.cmath.ellint.3}
269-
\movedxref{sf.cmath.riemann_zeta}{sf.cmath.riemann.zeta}
270-
\movedxref{sf.cmath.sph_bessel}{sf.cmath.sph.bessel}
271-
\movedxref{sf.cmath.sph_legendre}{sf.cmath.sph.legendre}
272-
\movedxref{sf.cmath.sph_neumann}{sf.cmath.sph.neumann}
273-
\movedxref{shared_mutex.syn}{shared.mutex.syn}
274-
\movedxref{system_error.syn}{system.error.syn}
275-
\movedxref{time.traits.duration_values}{time.traits.duration.values}
276-
\movedxref{time.traits.is_fp}{time.traits.is.fp}
277-
\movedxref{utility.as_const}{utility.as.const}
278-
279-
% Dissolved subclause.
280-
\movedxref{func.wrap.badcall.const}{func.wrap.badcall}
281-
282-
% Shortened label
283-
\movedxref{language.support}{support}
284-
28526
% Deprecated features.
286-
\deprxref{util.smartptr.shared.atomic}
287-
\deprxref{res.on.required}
288-
\deprxref{fs.path.factory}
289-
\movedxref{operators}{depr.relops}
27+
%\deprxref{old.label} (if moved to depr.old.label, otherwise use \movedxref)

0 commit comments

Comments
 (0)