From Jason Turner

[hash.requirements]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp6qvj4jde/{from.md → to.md} +6 -10
tmp/tmp6qvj4jde/{from.md → to.md} RENAMED
@@ -3,21 +3,17 @@
3
  A type `H` meets the `Hash` requirements if:
4
 
5
  - it is a function object type ([[function.objects]]),
6
  - it satisfies the requirements of `CopyConstructible` and
7
  `Destructible` ([[utility.arg.requirements]]), and
8
- - the expressions shown in Table  [[hash]] are valid and have the
9
  indicated semantics.
10
 
11
  Given `Key` is an argument type for function objects of type `H`, in
12
- Table  [[hash]] `h` is a value of type (possibly `const`) `H`, `u` is an
13
- lvalue of type `Key`, and `k` is a value of a type convertible to
14
  (possibly `const`) `Key`.
15
 
16
- **Table: `Hash` requirements** <a id="hash">[hash]</a>
17
-
18
- | | | |
19
- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
20
- | `h(k)` | `size_t` | The value returned shall depend only on the argument `k` for the duration of the program. \enternote Thus all evaluations of the expression `h(k)` with the same value for `k` yield the same result for a given execution of the program. \exitnote \enternote For two different values `t1` and `t2`, the probability that `h(t1)` and `h(t2)` compare equal should be very small, approaching `1.0 / numeric_limits<size_t>::max()`. \exitnote |
21
- | `h(u)` | `size_t` | Shall not modify `u`. |
22
-
23
 
 
3
  A type `H` meets the `Hash` requirements if:
4
 
5
  - it is a function object type ([[function.objects]]),
6
  - it satisfies the requirements of `CopyConstructible` and
7
  `Destructible` ([[utility.arg.requirements]]), and
8
+ - the expressions shown in Table  [[tab:hash]] are valid and have the
9
  indicated semantics.
10
 
11
  Given `Key` is an argument type for function objects of type `H`, in
12
+ Table  [[tab:hash]] `h` is a value of type (possibly `const`) `H`, `u`
13
+ is an lvalue of type `Key`, and `k` is a value of a type convertible to
14
  (possibly `const`) `Key`.
15
 
16
+ [*Note 1*: Thus all evaluations of the expression `h(k)` with the same
17
+ value for `k` yield the same result for a given execution of the
18
+ program. — *end note*]
 
 
 
 
19