From Jason Turner

[bit]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpj8nodt1m/{from.md → to.md} +385 -3
tmp/tmpj8nodt1m/{from.md → to.md} RENAMED
@@ -6,24 +6,29 @@ The header `<bit>` provides components to access, manipulate and process
6
  both individual bits and bit sequences.
7
 
8
  ### Header `<bit>` synopsis <a id="bit.syn">[[bit.syn]]</a>
9
 
10
  ``` cpp
 
11
  namespace std {
12
  // [bit.cast], bit_cast
13
  template<class To, class From>
14
  constexpr To bit_cast(const From& from) noexcept;
15
 
 
 
 
 
16
  // [bit.pow.two], integral powers of 2
17
  template<class T>
18
  constexpr bool has_single_bit(T x) noexcept;
19
  template<class T>
20
  constexpr T bit_ceil(T x);
21
  template<class T>
22
  constexpr T bit_floor(T x) noexcept;
23
  template<class T>
24
- constexpr T bit_width(T x) noexcept;
25
 
26
  // [bit.rotate], rotating
27
  template<class T>
28
  [[nodiscard]] constexpr T rotl(T x, int s) noexcept;
29
  template<class T>
@@ -68,21 +73,47 @@ within the result [[intro.object]]. Each bit of the value representation
68
  of the result is equal to the corresponding bit in the object
69
  representation of `from`. Padding bits of the result are unspecified.
70
  For the result and each object created within it, if there is no value
71
  of the object’s type corresponding to the value representation produced,
72
  the behavior is undefined. If there are multiple such values, which
73
- value is produced is unspecified.
 
 
 
 
 
 
 
 
74
 
75
  *Remarks:* This function is `constexpr` if and only if `To`, `From`, and
76
  the types of all subobjects of `To` and `From` are types `T` such that:
77
 
78
  - `is_union_v<T>` is `false`;
79
  - `is_pointer_v<T>` is `false`;
80
  - `is_member_pointer_v<T>` is `false`;
81
  - `is_volatile_v<T>` is `false`; and
82
  - `T` has no non-static data members of reference type.
83
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
  ### Integral powers of 2 <a id="bit.pow.two">[[bit.pow.two]]</a>
85
 
86
  ``` cpp
87
  template<class T>
88
  constexpr bool has_single_bit(T x) noexcept;
@@ -121,11 +152,11 @@ template<class T>
121
  *Returns:* If `x == 0`, `0`; otherwise the maximal value `y` such that
122
  `has_single_bit(y)` is `true` and `y <= x`.
123
 
124
  ``` cpp
125
  template<class T>
126
- constexpr T bit_width(T x) noexcept;
127
  ```
128
 
129
  *Constraints:* `T` is an unsigned integer type [[basic.fundamental]].
130
 
131
  *Returns:* If `x == 0`, `0`; otherwise one plus the base-2 logarithm of
@@ -248,5 +279,356 @@ If all scalar types have size 1 byte, then all of `endian::little`,
248
  big-endian, `endian::native` is equal to `endian::big`. If all scalar
249
  types are little-endian, `endian::native` is equal to `endian::little`.
250
  Otherwise, `endian::native` is not equal to either `endian::big` or
251
  `endian::little`.
252
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  both individual bits and bit sequences.
7
 
8
  ### Header `<bit>` synopsis <a id="bit.syn">[[bit.syn]]</a>
9
 
10
  ``` cpp
11
+ // all freestanding
12
  namespace std {
13
  // [bit.cast], bit_cast
14
  template<class To, class From>
15
  constexpr To bit_cast(const From& from) noexcept;
16
 
17
+ // [bit.byteswap], byteswap
18
+ template<class T>
19
+ constexpr T byteswap(T value) noexcept;
20
+
21
  // [bit.pow.two], integral powers of 2
22
  template<class T>
23
  constexpr bool has_single_bit(T x) noexcept;
24
  template<class T>
25
  constexpr T bit_ceil(T x);
26
  template<class T>
27
  constexpr T bit_floor(T x) noexcept;
28
  template<class T>
29
+ constexpr int bit_width(T x) noexcept;
30
 
31
  // [bit.rotate], rotating
32
  template<class T>
33
  [[nodiscard]] constexpr T rotl(T x, int s) noexcept;
34
  template<class T>
 
73
  of the result is equal to the corresponding bit in the object
74
  representation of `from`. Padding bits of the result are unspecified.
75
  For the result and each object created within it, if there is no value
76
  of the object’s type corresponding to the value representation produced,
77
  the behavior is undefined. If there are multiple such values, which
78
+ value is produced is unspecified. A bit in the value representation of
79
+ the result is indeterminate if it does not correspond to a bit in the
80
+ value representation of `from` or corresponds to a bit of an object that
81
+ is not within its lifetime or has an indeterminate
82
+ value [[basic.indet]]. For each bit in the value representation of the
83
+ result that is indeterminate, the smallest object containing that bit
84
+ has an indeterminate value; the behavior is undefined unless that object
85
+ is of unsigned ordinary character type or `std::byte` type. The result
86
+ does not otherwise contain any indeterminate values.
87
 
88
  *Remarks:* This function is `constexpr` if and only if `To`, `From`, and
89
  the types of all subobjects of `To` and `From` are types `T` such that:
90
 
91
  - `is_union_v<T>` is `false`;
92
  - `is_pointer_v<T>` is `false`;
93
  - `is_member_pointer_v<T>` is `false`;
94
  - `is_volatile_v<T>` is `false`; and
95
  - `T` has no non-static data members of reference type.
96
 
97
+ ### `byteswap` <a id="bit.byteswap">[[bit.byteswap]]</a>
98
+
99
+ ``` cpp
100
+ template<class T>
101
+ constexpr T byteswap(T value) noexcept;
102
+ ```
103
+
104
+ *Constraints:* `T` models `integral`.
105
+
106
+ *Mandates:* `T` does not have padding bits [[basic.types.general]].
107
+
108
+ Let the sequence R comprise the bytes of the object representation of
109
+ `value` in reverse order.
110
+
111
+ *Returns:* An object `v` of type `T` such that each byte in the object
112
+ representation of `v` is equal to the byte in the corresponding position
113
+ in R.
114
+
115
  ### Integral powers of 2 <a id="bit.pow.two">[[bit.pow.two]]</a>
116
 
117
  ``` cpp
118
  template<class T>
119
  constexpr bool has_single_bit(T x) noexcept;
 
152
  *Returns:* If `x == 0`, `0`; otherwise the maximal value `y` such that
153
  `has_single_bit(y)` is `true` and `y <= x`.
154
 
155
  ``` cpp
156
  template<class T>
157
+ constexpr int bit_width(T x) noexcept;
158
  ```
159
 
160
  *Constraints:* `T` is an unsigned integer type [[basic.fundamental]].
161
 
162
  *Returns:* If `x == 0`, `0`; otherwise one plus the base-2 logarithm of
 
279
  big-endian, `endian::native` is equal to `endian::big`. If all scalar
280
  types are little-endian, `endian::native` is equal to `endian::little`.
281
  Otherwise, `endian::native` is not equal to either `endian::big` or
282
  `endian::little`.
283
 
284
+ <!-- Link reference definitions -->
285
+ [algorithms]: algorithms.md#algorithms
286
+ [algorithms.general]: algorithms.md#algorithms.general
287
+ [algorithms.requirements]: algorithms.md#algorithms.requirements
288
+ [allocator.requirements.general]: library.md#allocator.requirements.general
289
+ [allocator.uses.construction]: mem.md#allocator.uses.construction
290
+ [any]: #any
291
+ [any.assign]: #any.assign
292
+ [any.bad.any.cast]: #any.bad.any.cast
293
+ [any.class]: #any.class
294
+ [any.class.general]: #any.class.general
295
+ [any.cons]: #any.cons
296
+ [any.general]: #any.general
297
+ [any.modifiers]: #any.modifiers
298
+ [any.nonmembers]: #any.nonmembers
299
+ [any.observers]: #any.observers
300
+ [any.synop]: #any.synop
301
+ [arithmetic.operations]: #arithmetic.operations
302
+ [arithmetic.operations.divides]: #arithmetic.operations.divides
303
+ [arithmetic.operations.general]: #arithmetic.operations.general
304
+ [arithmetic.operations.minus]: #arithmetic.operations.minus
305
+ [arithmetic.operations.modulus]: #arithmetic.operations.modulus
306
+ [arithmetic.operations.multiplies]: #arithmetic.operations.multiplies
307
+ [arithmetic.operations.negate]: #arithmetic.operations.negate
308
+ [arithmetic.operations.plus]: #arithmetic.operations.plus
309
+ [associative]: containers.md#associative
310
+ [basic.fundamental]: basic.md#basic.fundamental
311
+ [basic.indet]: basic.md#basic.indet
312
+ [basic.lookup.argdep]: basic.md#basic.lookup.argdep
313
+ [basic.types.general]: basic.md#basic.types.general
314
+ [bit]: #bit
315
+ [bit.byteswap]: #bit.byteswap
316
+ [bit.cast]: #bit.cast
317
+ [bit.count]: #bit.count
318
+ [bit.endian]: #bit.endian
319
+ [bit.general]: #bit.general
320
+ [bit.pow.two]: #bit.pow.two
321
+ [bit.rotate]: #bit.rotate
322
+ [bit.syn]: #bit.syn
323
+ [bitmask.types]: library.md#bitmask.types
324
+ [bitset]: #bitset
325
+ [bitset.cons]: #bitset.cons
326
+ [bitset.hash]: #bitset.hash
327
+ [bitset.members]: #bitset.members
328
+ [bitset.operators]: #bitset.operators
329
+ [bitset.syn]: #bitset.syn
330
+ [bitwise.operations]: #bitwise.operations
331
+ [bitwise.operations.and]: #bitwise.operations.and
332
+ [bitwise.operations.general]: #bitwise.operations.general
333
+ [bitwise.operations.not]: #bitwise.operations.not
334
+ [bitwise.operations.or]: #bitwise.operations.or
335
+ [bitwise.operations.xor]: #bitwise.operations.xor
336
+ [charconv]: #charconv
337
+ [charconv.from.chars]: #charconv.from.chars
338
+ [charconv.syn]: #charconv.syn
339
+ [charconv.to.chars]: #charconv.to.chars
340
+ [class.base.init]: class.md#class.base.init
341
+ [class.copy.ctor]: class.md#class.copy.ctor
342
+ [comparisons]: #comparisons
343
+ [comparisons.equal.to]: #comparisons.equal.to
344
+ [comparisons.general]: #comparisons.general
345
+ [comparisons.greater]: #comparisons.greater
346
+ [comparisons.greater.equal]: #comparisons.greater.equal
347
+ [comparisons.less]: #comparisons.less
348
+ [comparisons.less.equal]: #comparisons.less.equal
349
+ [comparisons.not.equal.to]: #comparisons.not.equal.to
350
+ [comparisons.three.way]: #comparisons.three.way
351
+ [concepts.equality]: concepts.md#concepts.equality
352
+ [cpp17.copyassignable]: #cpp17.copyassignable
353
+ [cpp17.copyconstructible]: #cpp17.copyconstructible
354
+ [cpp17.defaultconstructible]: #cpp17.defaultconstructible
355
+ [cpp17.destructible]: #cpp17.destructible
356
+ [cpp17.hash]: #cpp17.hash
357
+ [cpp17.moveassignable]: #cpp17.moveassignable
358
+ [cpp17.moveconstructible]: #cpp17.moveconstructible
359
+ [dcl.constexpr]: dcl.md#dcl.constexpr
360
+ [dcl.init.general]: dcl.md#dcl.init.general
361
+ [declval]: #declval
362
+ [defns.expression.equivalent]: intro.md#defns.expression.equivalent
363
+ [defns.ntcts]: intro.md#defns.ntcts
364
+ [defns.order.ptr]: #defns.order.ptr
365
+ [defns.referenceable]: intro.md#defns.referenceable
366
+ [except.terminate]: except.md#except.terminate
367
+ [execpol]: #execpol
368
+ [execpol.general]: #execpol.general
369
+ [execpol.objects]: #execpol.objects
370
+ [execpol.par]: #execpol.par
371
+ [execpol.parunseq]: #execpol.parunseq
372
+ [execpol.seq]: #execpol.seq
373
+ [execpol.type]: #execpol.type
374
+ [execpol.unseq]: #execpol.unseq
375
+ [execution.syn]: #execution.syn
376
+ [expected]: #expected
377
+ [expected.bad]: #expected.bad
378
+ [expected.bad.void]: #expected.bad.void
379
+ [expected.expected]: #expected.expected
380
+ [expected.general]: #expected.general
381
+ [expected.object.assign]: #expected.object.assign
382
+ [expected.object.cons]: #expected.object.cons
383
+ [expected.object.dtor]: #expected.object.dtor
384
+ [expected.object.eq]: #expected.object.eq
385
+ [expected.object.general]: #expected.object.general
386
+ [expected.object.monadic]: #expected.object.monadic
387
+ [expected.object.obs]: #expected.object.obs
388
+ [expected.object.swap]: #expected.object.swap
389
+ [expected.syn]: #expected.syn
390
+ [expected.un.cons]: #expected.un.cons
391
+ [expected.un.eq]: #expected.un.eq
392
+ [expected.un.general]: #expected.un.general
393
+ [expected.un.obs]: #expected.un.obs
394
+ [expected.un.swap]: #expected.un.swap
395
+ [expected.unexpected]: #expected.unexpected
396
+ [expected.void]: #expected.void
397
+ [expected.void.assign]: #expected.void.assign
398
+ [expected.void.cons]: #expected.void.cons
399
+ [expected.void.dtor]: #expected.void.dtor
400
+ [expected.void.eq]: #expected.void.eq
401
+ [expected.void.general]: #expected.void.general
402
+ [expected.void.monadic]: #expected.void.monadic
403
+ [expected.void.obs]: #expected.void.obs
404
+ [expected.void.swap]: #expected.void.swap
405
+ [expr.add]: expr.md#expr.add
406
+ [expr.bit.and]: expr.md#expr.bit.and
407
+ [expr.call]: expr.md#expr.call
408
+ [expr.const]: expr.md#expr.const
409
+ [expr.eq]: expr.md#expr.eq
410
+ [expr.log.and]: expr.md#expr.log.and
411
+ [expr.log.or]: expr.md#expr.log.or
412
+ [expr.mul]: expr.md#expr.mul
413
+ [expr.or]: expr.md#expr.or
414
+ [expr.rel]: expr.md#expr.rel
415
+ [expr.unary.op]: expr.md#expr.unary.op
416
+ [expr.xor]: expr.md#expr.xor
417
+ [format]: #format
418
+ [format.align]: #format.align
419
+ [format.arg]: #format.arg
420
+ [format.arg.store]: #format.arg.store
421
+ [format.args]: #format.args
422
+ [format.arguments]: #format.arguments
423
+ [format.context]: #format.context
424
+ [format.err.report]: #format.err.report
425
+ [format.error]: #format.error
426
+ [format.escape.sequences]: #format.escape.sequences
427
+ [format.fmt.string]: #format.fmt.string
428
+ [format.formattable]: #format.formattable
429
+ [format.formatter]: #format.formatter
430
+ [format.formatter.spec]: #format.formatter.spec
431
+ [format.functions]: #format.functions
432
+ [format.parse.ctx]: #format.parse.ctx
433
+ [format.range]: #format.range
434
+ [format.range.fmtdef]: #format.range.fmtdef
435
+ [format.range.fmtkind]: #format.range.fmtkind
436
+ [format.range.fmtmap]: #format.range.fmtmap
437
+ [format.range.fmtset]: #format.range.fmtset
438
+ [format.range.fmtstr]: #format.range.fmtstr
439
+ [format.range.formatter]: #format.range.formatter
440
+ [format.sign]: #format.sign
441
+ [format.string]: #format.string
442
+ [format.string.escaped]: #format.string.escaped
443
+ [format.string.general]: #format.string.general
444
+ [format.string.std]: #format.string.std
445
+ [format.syn]: #format.syn
446
+ [format.tuple]: #format.tuple
447
+ [format.type.bool]: #format.type.bool
448
+ [format.type.char]: #format.type.char
449
+ [format.type.float]: #format.type.float
450
+ [format.type.int]: #format.type.int
451
+ [format.type.ptr]: #format.type.ptr
452
+ [format.type.string]: #format.type.string
453
+ [formatter]: #formatter
454
+ [formatter.basic]: #formatter.basic
455
+ [formatter.range.type]: #formatter.range.type
456
+ [formatter.requirements]: #formatter.requirements
457
+ [formatter.tuple.type]: #formatter.tuple.type
458
+ [forward]: #forward
459
+ [freestanding.item]: library.md#freestanding.item
460
+ [func.bind]: #func.bind
461
+ [func.bind.bind]: #func.bind.bind
462
+ [func.bind.general]: #func.bind.general
463
+ [func.bind.isbind]: #func.bind.isbind
464
+ [func.bind.isplace]: #func.bind.isplace
465
+ [func.bind.partial]: #func.bind.partial
466
+ [func.bind.place]: #func.bind.place
467
+ [func.def]: #func.def
468
+ [func.identity]: #func.identity
469
+ [func.invoke]: #func.invoke
470
+ [func.memfn]: #func.memfn
471
+ [func.not.fn]: #func.not.fn
472
+ [func.require]: #func.require
473
+ [func.search]: #func.search
474
+ [func.search.bm]: #func.search.bm
475
+ [func.search.bmh]: #func.search.bmh
476
+ [func.search.default]: #func.search.default
477
+ [func.search.general]: #func.search.general
478
+ [func.wrap]: #func.wrap
479
+ [func.wrap.badcall]: #func.wrap.badcall
480
+ [func.wrap.func]: #func.wrap.func
481
+ [func.wrap.func.alg]: #func.wrap.func.alg
482
+ [func.wrap.func.cap]: #func.wrap.func.cap
483
+ [func.wrap.func.con]: #func.wrap.func.con
484
+ [func.wrap.func.general]: #func.wrap.func.general
485
+ [func.wrap.func.inv]: #func.wrap.func.inv
486
+ [func.wrap.func.mod]: #func.wrap.func.mod
487
+ [func.wrap.func.nullptr]: #func.wrap.func.nullptr
488
+ [func.wrap.func.targ]: #func.wrap.func.targ
489
+ [func.wrap.general]: #func.wrap.general
490
+ [func.wrap.move]: #func.wrap.move
491
+ [func.wrap.move.class]: #func.wrap.move.class
492
+ [func.wrap.move.ctor]: #func.wrap.move.ctor
493
+ [func.wrap.move.general]: #func.wrap.move.general
494
+ [func.wrap.move.inv]: #func.wrap.move.inv
495
+ [func.wrap.move.util]: #func.wrap.move.util
496
+ [function.objects]: #function.objects
497
+ [function.objects.general]: #function.objects.general
498
+ [functional.syn]: #functional.syn
499
+ [intro.multithread]: basic.md#intro.multithread
500
+ [intro.object]: basic.md#intro.object
501
+ [invalid.argument]: diagnostics.md#invalid.argument
502
+ [istream.formatted]: input.md#istream.formatted
503
+ [iterator.concept.output]: iterators.md#iterator.concept.output
504
+ [lex.string.literal]: lex.md#lex.string.literal
505
+ [logical.operations]: #logical.operations
506
+ [logical.operations.and]: #logical.operations.and
507
+ [logical.operations.general]: #logical.operations.general
508
+ [logical.operations.not]: #logical.operations.not
509
+ [logical.operations.or]: #logical.operations.or
510
+ [meta.rqmts]: meta.md#meta.rqmts
511
+ [meta.trans.other]: meta.md#meta.trans.other
512
+ [namespace.std]: library.md#namespace.std
513
+ [optional]: #optional
514
+ [optional.assign]: #optional.assign
515
+ [optional.assign.copy]: #optional.assign.copy
516
+ [optional.assign.copy.templ]: #optional.assign.copy.templ
517
+ [optional.assign.move]: #optional.assign.move
518
+ [optional.assign.move.templ]: #optional.assign.move.templ
519
+ [optional.bad.access]: #optional.bad.access
520
+ [optional.comp.with.t]: #optional.comp.with.t
521
+ [optional.ctor]: #optional.ctor
522
+ [optional.dtor]: #optional.dtor
523
+ [optional.general]: #optional.general
524
+ [optional.hash]: #optional.hash
525
+ [optional.mod]: #optional.mod
526
+ [optional.monadic]: #optional.monadic
527
+ [optional.nullops]: #optional.nullops
528
+ [optional.nullopt]: #optional.nullopt
529
+ [optional.observe]: #optional.observe
530
+ [optional.optional]: #optional.optional
531
+ [optional.optional.general]: #optional.optional.general
532
+ [optional.relops]: #optional.relops
533
+ [optional.specalg]: #optional.specalg
534
+ [optional.swap]: #optional.swap
535
+ [optional.syn]: #optional.syn
536
+ [ostream.formatted]: input.md#ostream.formatted
537
+ [out.of.range]: diagnostics.md#out.of.range
538
+ [over.match.call]: over.md#over.match.call
539
+ [overflow.error]: diagnostics.md#overflow.error
540
+ [pair.astuple]: #pair.astuple
541
+ [pair.piecewise]: #pair.piecewise
542
+ [pairs]: #pairs
543
+ [pairs.general]: #pairs.general
544
+ [pairs.pair]: #pairs.pair
545
+ [pairs.spec]: #pairs.spec
546
+ [range.cmp]: #range.cmp
547
+ [range.utility.helpers]: ranges.md#range.utility.helpers
548
+ [refwrap]: #refwrap
549
+ [refwrap.access]: #refwrap.access
550
+ [refwrap.assign]: #refwrap.assign
551
+ [refwrap.common.ref]: #refwrap.common.ref
552
+ [refwrap.const]: #refwrap.const
553
+ [refwrap.general]: #refwrap.general
554
+ [refwrap.helpers]: #refwrap.helpers
555
+ [refwrap.invoke]: #refwrap.invoke
556
+ [res.on.exception.handling]: library.md#res.on.exception.handling
557
+ [round.style]: support.md#round.style
558
+ [support.signal]: support.md#support.signal
559
+ [swappable.requirements]: library.md#swappable.requirements
560
+ [temp.param]: temp.md#temp.param
561
+ [temp.type]: temp.md#temp.type
562
+ [template.bitset]: #template.bitset
563
+ [template.bitset.general]: #template.bitset.general
564
+ [term.object.representation]: basic.md#term.object.representation
565
+ [term.object.type]: basic.md#term.object.type
566
+ [term.odr.use]: basic.md#term.odr.use
567
+ [term.perfect.forwarding.call.wrapper]: #term.perfect.forwarding.call.wrapper
568
+ [term.simple.call.wrapper]: #term.simple.call.wrapper
569
+ [term.trivially.copyable.type]: basic.md#term.trivially.copyable.type
570
+ [term.unevaluated.operand]: expr.md#term.unevaluated.operand
571
+ [time.format]: time.md#time.format
572
+ [tuple]: #tuple
573
+ [tuple.apply]: #tuple.apply
574
+ [tuple.assign]: #tuple.assign
575
+ [tuple.cnstr]: #tuple.cnstr
576
+ [tuple.common.ref]: #tuple.common.ref
577
+ [tuple.creation]: #tuple.creation
578
+ [tuple.elem]: #tuple.elem
579
+ [tuple.general]: #tuple.general
580
+ [tuple.helper]: #tuple.helper
581
+ [tuple.like]: #tuple.like
582
+ [tuple.rel]: #tuple.rel
583
+ [tuple.special]: #tuple.special
584
+ [tuple.swap]: #tuple.swap
585
+ [tuple.syn]: #tuple.syn
586
+ [tuple.traits]: #tuple.traits
587
+ [tuple.tuple]: #tuple.tuple
588
+ [type.index]: #type.index
589
+ [type.index.hash]: #type.index.hash
590
+ [type.index.members]: #type.index.members
591
+ [type.index.overview]: #type.index.overview
592
+ [type.index.synopsis]: #type.index.synopsis
593
+ [unord]: containers.md#unord
594
+ [unord.hash]: #unord.hash
595
+ [utilities]: #utilities
596
+ [utilities.general]: #utilities.general
597
+ [utilities.summary]: #utilities.summary
598
+ [utility]: #utility
599
+ [utility.as.const]: #utility.as.const
600
+ [utility.exchange]: #utility.exchange
601
+ [utility.intcmp]: #utility.intcmp
602
+ [utility.swap]: #utility.swap
603
+ [utility.syn]: #utility.syn
604
+ [utility.underlying]: #utility.underlying
605
+ [utility.unreachable]: #utility.unreachable
606
+ [variant]: #variant
607
+ [variant.assign]: #variant.assign
608
+ [variant.bad.access]: #variant.bad.access
609
+ [variant.ctor]: #variant.ctor
610
+ [variant.dtor]: #variant.dtor
611
+ [variant.general]: #variant.general
612
+ [variant.get]: #variant.get
613
+ [variant.hash]: #variant.hash
614
+ [variant.helper]: #variant.helper
615
+ [variant.mod]: #variant.mod
616
+ [variant.monostate]: #variant.monostate
617
+ [variant.monostate.relops]: #variant.monostate.relops
618
+ [variant.relops]: #variant.relops
619
+ [variant.specalg]: #variant.specalg
620
+ [variant.status]: #variant.status
621
+ [variant.swap]: #variant.swap
622
+ [variant.syn]: #variant.syn
623
+ [variant.variant]: #variant.variant
624
+ [variant.variant.general]: #variant.variant.general
625
+ [variant.visit]: #variant.visit
626
+
627
+ [^1]: Such a type is a function pointer or a class type which has a
628
+ member `operator()` or a class type which has a conversion to a
629
+ pointer to function.
630
+
631
+ [^2]: Windows® is a registered trademark of Microsoft Corporation. This
632
+ information is given for the convenience of users of this document
633
+ and does not constitute an endorsement by ISO or IEC of this
634
+ product.