From Jason Turner

[type.index.hash]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp7w1k6knl/{from.md → to.md} +2 -295
tmp/tmp7w1k6knl/{from.md → to.md} RENAMED
@@ -2,301 +2,8 @@
2
 
3
  ``` cpp
4
  template <> struct hash<type_index>;
5
  ```
6
 
7
- The template specialization shall meet the requirements of class
8
- template `hash` ([[unord.hash]]). For an object `index` of type
9
- `type_index`, `hash<type_index>()(index)` shall evaluate to the same
10
- result as `index.hash_code()`.
11
 
12
- <!-- Link reference definitions -->
13
- [alg.sorting]: algorithms.md#alg.sorting
14
- [algorithms]: algorithms.md#algorithms
15
- [allocator.adaptor]: #allocator.adaptor
16
- [allocator.adaptor.cnstr]: #allocator.adaptor.cnstr
17
- [allocator.adaptor.members]: #allocator.adaptor.members
18
- [allocator.adaptor.syn]: #allocator.adaptor.syn
19
- [allocator.adaptor.types]: #allocator.adaptor.types
20
- [allocator.globals]: #allocator.globals
21
- [allocator.members]: #allocator.members
22
- [allocator.requirements]: library.md#allocator.requirements
23
- [allocator.tag]: #allocator.tag
24
- [allocator.traits]: #allocator.traits
25
- [allocator.traits.members]: #allocator.traits.members
26
- [allocator.traits.types]: #allocator.traits.types
27
- [allocator.uses]: #allocator.uses
28
- [allocator.uses.construction]: #allocator.uses.construction
29
- [allocator.uses.trait]: #allocator.uses.trait
30
- [arithmetic.operations]: #arithmetic.operations
31
- [array]: containers.md#array
32
- [associative]: containers.md#associative
33
- [atomics.order]: atomics.md#atomics.order
34
- [atomics.types.operations]: atomics.md#atomics.types.operations
35
- [basic.align]: basic.md#basic.align
36
- [basic.compound]: basic.md#basic.compound
37
- [basic.def.odr]: basic.md#basic.def.odr
38
- [basic.fundamental]: basic.md#basic.fundamental
39
- [basic.life]: basic.md#basic.life
40
- [basic.stc.dynamic.safety]: basic.md#basic.stc.dynamic.safety
41
- [basic.type.qualifier]: basic.md#basic.type.qualifier
42
- [basic.types]: basic.md#basic.types
43
- [bitset.cons]: #bitset.cons
44
- [bitset.hash]: #bitset.hash
45
- [bitset.members]: #bitset.members
46
- [bitset.operators]: #bitset.operators
47
- [bitwise.operations]: #bitwise.operations
48
- [c.malloc]: #c.malloc
49
- [c.strings]: strings.md#c.strings
50
- [class]: class.md#class
51
- [class.abstract]: class.md#class.abstract
52
- [class.derived]: class.md#class.derived
53
- [class.dtor]: special.md#class.dtor
54
- [class.virtual]: class.md#class.virtual
55
- [comparisons]: #comparisons
56
- [conv.array]: conv.md#conv.array
57
- [conv.func]: conv.md#conv.func
58
- [conv.lval]: conv.md#conv.lval
59
- [conv.rank]: conv.md#conv.rank
60
- [copyassignable]: #copyassignable
61
- [copyconstructible]: #copyconstructible
62
- [date.time]: #date.time
63
- [dcl.array]: dcl.md#dcl.array
64
- [dcl.enum]: dcl.md#dcl.enum
65
- [dcl.ref]: dcl.md#dcl.ref
66
- [declval]: #declval
67
- [default.allocator]: #default.allocator
68
- [defaultconstructible]: #defaultconstructible
69
- [destructible]: #destructible
70
- [equalitycomparable]: #equalitycomparable
71
- [expr]: expr.md#expr
72
- [expr.add]: expr.md#expr.add
73
- [expr.alignof]: expr.md#expr.alignof
74
- [expr.bit.and]: expr.md#expr.bit.and
75
- [expr.call]: expr.md#expr.call
76
- [expr.eq]: expr.md#expr.eq
77
- [expr.log.and]: expr.md#expr.log.and
78
- [expr.log.or]: expr.md#expr.log.or
79
- [expr.mul]: expr.md#expr.mul
80
- [expr.or]: expr.md#expr.or
81
- [expr.rel]: expr.md#expr.rel
82
- [expr.unary.noexcept]: expr.md#expr.unary.noexcept
83
- [expr.unary.op]: expr.md#expr.unary.op
84
- [expr.xor]: expr.md#expr.xor
85
- [forward]: #forward
86
- [forward.iterators]: iterators.md#forward.iterators
87
- [func.bind]: #func.bind
88
- [func.bind.bind]: #func.bind.bind
89
- [func.bind.isbind]: #func.bind.isbind
90
- [func.bind.isplace]: #func.bind.isplace
91
- [func.bind.place]: #func.bind.place
92
- [func.def]: #func.def
93
- [func.memfn]: #func.memfn
94
- [func.require]: #func.require
95
- [func.wrap]: #func.wrap
96
- [func.wrap.badcall]: #func.wrap.badcall
97
- [func.wrap.badcall.const]: #func.wrap.badcall.const
98
- [func.wrap.func]: #func.wrap.func
99
- [func.wrap.func.alg]: #func.wrap.func.alg
100
- [func.wrap.func.cap]: #func.wrap.func.cap
101
- [func.wrap.func.con]: #func.wrap.func.con
102
- [func.wrap.func.inv]: #func.wrap.func.inv
103
- [func.wrap.func.mod]: #func.wrap.func.mod
104
- [func.wrap.func.nullptr]: #func.wrap.func.nullptr
105
- [func.wrap.func.targ]: #func.wrap.func.targ
106
- [function.objects]: #function.objects
107
- [hash.requirements]: library.md#hash.requirements
108
- [input.iterators]: iterators.md#input.iterators
109
- [intro.multithread]: intro.md#intro.multithread
110
- [intseq]: #intseq
111
- [intseq.general]: #intseq.general
112
- [intseq.intseq]: #intseq.intseq
113
- [intseq.make]: #intseq.make
114
- [invalid.argument]: diagnostics.md#invalid.argument
115
- [iostate.flags]: input.md#iostate.flags
116
- [istream.formatted]: input.md#istream.formatted
117
- [lessthancomparable]: #lessthancomparable
118
- [logical.operations]: #logical.operations
119
- [memory]: #memory
120
- [memory.general]: #memory.general
121
- [memory.syn]: #memory.syn
122
- [meta]: #meta
123
- [meta.help]: #meta.help
124
- [meta.rel]: #meta.rel
125
- [meta.rqmts]: #meta.rqmts
126
- [meta.trans]: #meta.trans
127
- [meta.trans.arr]: #meta.trans.arr
128
- [meta.trans.cv]: #meta.trans.cv
129
- [meta.trans.other]: #meta.trans.other
130
- [meta.trans.ptr]: #meta.trans.ptr
131
- [meta.trans.ref]: #meta.trans.ref
132
- [meta.trans.sign]: #meta.trans.sign
133
- [meta.type.synop]: #meta.type.synop
134
- [meta.unary]: #meta.unary
135
- [meta.unary.cat]: #meta.unary.cat
136
- [meta.unary.comp]: #meta.unary.comp
137
- [meta.unary.prop]: #meta.unary.prop
138
- [meta.unary.prop.query]: #meta.unary.prop.query
139
- [moveassignable]: #moveassignable
140
- [moveconstructible]: #moveconstructible
141
- [negators]: #negators
142
- [new.delete]: language.md#new.delete
143
- [nullablepointer.requirements]: library.md#nullablepointer.requirements
144
- [numeric.requirements]: numerics.md#numeric.requirements
145
- [operators]: #operators
146
- [ostream.formatted]: input.md#ostream.formatted
147
- [out.of.range]: diagnostics.md#out.of.range
148
- [output.iterators]: iterators.md#output.iterators
149
- [over.match.call]: over.md#over.match.call
150
- [overflow.error]: diagnostics.md#overflow.error
151
- [pair.astuple]: #pair.astuple
152
- [pair.piecewise]: #pair.piecewise
153
- [pairs]: #pairs
154
- [pairs.general]: #pairs.general
155
- [pairs.pair]: #pairs.pair
156
- [pairs.spec]: #pairs.spec
157
- [pointer.traits]: #pointer.traits
158
- [pointer.traits.functions]: #pointer.traits.functions
159
- [pointer.traits.types]: #pointer.traits.types
160
- [ptr.align]: #ptr.align
161
- [ratio]: #ratio
162
- [ratio.arithmetic]: #ratio.arithmetic
163
- [ratio.comparison]: #ratio.comparison
164
- [ratio.general]: #ratio.general
165
- [ratio.ratio]: #ratio.ratio
166
- [ratio.si]: #ratio.si
167
- [ratio.syn]: #ratio.syn
168
- [refwrap]: #refwrap
169
- [refwrap.access]: #refwrap.access
170
- [refwrap.assign]: #refwrap.assign
171
- [refwrap.const]: #refwrap.const
172
- [refwrap.helpers]: #refwrap.helpers
173
- [refwrap.invoke]: #refwrap.invoke
174
- [res.on.data.races]: library.md#res.on.data.races
175
- [scoped.adaptor.operators]: #scoped.adaptor.operators
176
- [smartptr]: #smartptr
177
- [special]: special.md#special
178
- [specialized.addressof]: #specialized.addressof
179
- [specialized.algorithms]: #specialized.algorithms
180
- [stmt.dcl]: stmt.md#stmt.dcl
181
- [storage.iterator]: #storage.iterator
182
- [support.dynamic]: language.md#support.dynamic
183
- [swappable.requirements]: library.md#swappable.requirements
184
- [tab:ratio.arithmetic]: #tab:ratio.arithmetic
185
- [tab:time.clock]: #tab:time.clock
186
- [tab:util.hdr.cstdlib]: #tab:util.hdr.cstdlib
187
- [tab:util.hdr.cstring]: #tab:util.hdr.cstring
188
- [tab:util.hdr.ctime]: #tab:util.hdr.ctime
189
- [tab:util.lib.summary]: #tab:util.lib.summary
190
- [template.bitset]: #template.bitset
191
- [temporary.buffer]: #temporary.buffer
192
- [time]: #time
193
- [time.clock]: #time.clock
194
- [time.clock.hires]: #time.clock.hires
195
- [time.clock.req]: #time.clock.req
196
- [time.clock.steady]: #time.clock.steady
197
- [time.clock.system]: #time.clock.system
198
- [time.duration]: #time.duration
199
- [time.duration.arithmetic]: #time.duration.arithmetic
200
- [time.duration.cast]: #time.duration.cast
201
- [time.duration.comparisons]: #time.duration.comparisons
202
- [time.duration.cons]: #time.duration.cons
203
- [time.duration.literals]: #time.duration.literals
204
- [time.duration.nonmember]: #time.duration.nonmember
205
- [time.duration.observer]: #time.duration.observer
206
- [time.duration.special]: #time.duration.special
207
- [time.general]: #time.general
208
- [time.point]: #time.point
209
- [time.point.arithmetic]: #time.point.arithmetic
210
- [time.point.cast]: #time.point.cast
211
- [time.point.comparisons]: #time.point.comparisons
212
- [time.point.cons]: #time.point.cons
213
- [time.point.nonmember]: #time.point.nonmember
214
- [time.point.observer]: #time.point.observer
215
- [time.point.special]: #time.point.special
216
- [time.syn]: #time.syn
217
- [time.traits]: #time.traits
218
- [time.traits.duration_values]: #time.traits.duration_values
219
- [time.traits.is_fp]: #time.traits.is_fp
220
- [time.traits.specializations]: #time.traits.specializations
221
- [tuple]: #tuple
222
- [tuple.assign]: #tuple.assign
223
- [tuple.cnstr]: #tuple.cnstr
224
- [tuple.creation]: #tuple.creation
225
- [tuple.elem]: #tuple.elem
226
- [tuple.general]: #tuple.general
227
- [tuple.helper]: #tuple.helper
228
- [tuple.rel]: #tuple.rel
229
- [tuple.special]: #tuple.special
230
- [tuple.swap]: #tuple.swap
231
- [tuple.traits]: #tuple.traits
232
- [tuple.tuple]: #tuple.tuple
233
- [type.index]: #type.index
234
- [type.index.hash]: #type.index.hash
235
- [type.index.members]: #type.index.members
236
- [type.index.overview]: #type.index.overview
237
- [type.index.synopsis]: #type.index.synopsis
238
- [uninitialized.copy]: #uninitialized.copy
239
- [uninitialized.fill]: #uninitialized.fill
240
- [uninitialized.fill.n]: #uninitialized.fill.n
241
- [unique.ptr]: #unique.ptr
242
- [unique.ptr.create]: #unique.ptr.create
243
- [unique.ptr.dltr]: #unique.ptr.dltr
244
- [unique.ptr.dltr.dflt]: #unique.ptr.dltr.dflt
245
- [unique.ptr.dltr.dflt1]: #unique.ptr.dltr.dflt1
246
- [unique.ptr.dltr.general]: #unique.ptr.dltr.general
247
- [unique.ptr.runtime]: #unique.ptr.runtime
248
- [unique.ptr.runtime.ctor]: #unique.ptr.runtime.ctor
249
- [unique.ptr.runtime.modifiers]: #unique.ptr.runtime.modifiers
250
- [unique.ptr.runtime.observers]: #unique.ptr.runtime.observers
251
- [unique.ptr.single]: #unique.ptr.single
252
- [unique.ptr.single.asgn]: #unique.ptr.single.asgn
253
- [unique.ptr.single.ctor]: #unique.ptr.single.ctor
254
- [unique.ptr.single.dtor]: #unique.ptr.single.dtor
255
- [unique.ptr.single.modifiers]: #unique.ptr.single.modifiers
256
- [unique.ptr.single.observers]: #unique.ptr.single.observers
257
- [unique.ptr.special]: #unique.ptr.special
258
- [unord]: containers.md#unord
259
- [unord.hash]: #unord.hash
260
- [util.dynamic.safety]: #util.dynamic.safety
261
- [util.smartptr]: #util.smartptr
262
- [util.smartptr.enab]: #util.smartptr.enab
263
- [util.smartptr.getdeleter]: #util.smartptr.getdeleter
264
- [util.smartptr.hash]: #util.smartptr.hash
265
- [util.smartptr.ownerless]: #util.smartptr.ownerless
266
- [util.smartptr.shared]: #util.smartptr.shared
267
- [util.smartptr.shared.assign]: #util.smartptr.shared.assign
268
- [util.smartptr.shared.atomic]: #util.smartptr.shared.atomic
269
- [util.smartptr.shared.cast]: #util.smartptr.shared.cast
270
- [util.smartptr.shared.cmp]: #util.smartptr.shared.cmp
271
- [util.smartptr.shared.const]: #util.smartptr.shared.const
272
- [util.smartptr.shared.create]: #util.smartptr.shared.create
273
- [util.smartptr.shared.dest]: #util.smartptr.shared.dest
274
- [util.smartptr.shared.io]: #util.smartptr.shared.io
275
- [util.smartptr.shared.mod]: #util.smartptr.shared.mod
276
- [util.smartptr.shared.obs]: #util.smartptr.shared.obs
277
- [util.smartptr.shared.spec]: #util.smartptr.shared.spec
278
- [util.smartptr.weak]: #util.smartptr.weak
279
- [util.smartptr.weak.assign]: #util.smartptr.weak.assign
280
- [util.smartptr.weak.const]: #util.smartptr.weak.const
281
- [util.smartptr.weak.dest]: #util.smartptr.weak.dest
282
- [util.smartptr.weak.mod]: #util.smartptr.weak.mod
283
- [util.smartptr.weak.obs]: #util.smartptr.weak.obs
284
- [util.smartptr.weak.spec]: #util.smartptr.weak.spec
285
- [util.smartptr.weakptr]: #util.smartptr.weakptr
286
- [utilities]: #utilities
287
- [utilities.general]: #utilities.general
288
- [utility]: #utility
289
- [utility.exchange]: #utility.exchange
290
- [utility.swap]: #utility.swap
291
-
292
- [^1]: `pointer_safety::preferred` might be returned to indicate that a
293
- leak detector is running so that the program can avoid spurious leak
294
- reports.
295
-
296
- [^2]: Such a type is a function pointer or a class type which has a
297
- member `operator()` or a class type which has a conversion to a
298
- pointer to function.
299
-
300
- [^3]: `strftime` supports the C conversion specifiers `C`, `D`, `e`,
301
- `F`, `g`, `G`, `h`, `r`, `R`, `t`, `T`, `u`, `V`, and `z`, and the
302
- modifiers `E` and `O`.
 
2
 
3
  ``` cpp
4
  template <> struct hash<type_index>;
5
  ```
6
 
7
+ For an object `index` of type `type_index`, `hash<type_index>()(index)`
8
+ shall evaluate to the same result as `index.hash_code()`.
 
 
9