From Jason Turner

[description]

Diff to HTML by rtfpessoa

tmp/tmpb_vm9owi/{from.md → to.md} RENAMED
@@ -60,11 +60,11 @@ Requirements are stated in terms of well-defined expressions that define
60
  valid terms of the types that satisfy the requirements. For every set of
61
  well-defined expression requirements there is a table that specifies an
62
  initial set of the valid expressions and their semantics. Any generic
63
  algorithm (Clause  [[algorithms]]) that uses the well-defined expression
64
  requirements is described in terms of the valid expressions for its
65
- formal type parameters.
66
 
67
  Template argument requirements are sometimes referenced by name. See 
68
  [[type.descriptions]].
69
 
70
  In some cases the semantic requirements are presented as C++code. Such
@@ -239,21 +239,22 @@ bitmask{}& operator^=(bitmask{}& X, bitmask{} Y) {
239
  X = X ^ Y; return X;
240
  }
241
  ```
242
 
243
  Here, the names *C0*, *C1*, etc. represent *bitmask elements* for this
244
- particular bitmask type. All such elements have distinct values such
245
- that, for any pair *Ci* and *Cj*, *Ci* & *Ci* is nonzero and *Ci* & *Cj*
246
- is zero.
 
247
 
248
  The following terms apply to objects and values of bitmask types:
249
 
250
  - To *set* a value *Y* in an object *X* is to evaluate the expression
251
- *X* |= *Y*.
252
  - To *clear* a value *Y* in an object *X* is to evaluate the expression
253
- *X* &= ~*Y*.
254
- - The value *Y* *is set* in the object *X* if the expression *X* & *Y*
255
  is nonzero.
256
 
257
  ##### Character sequences <a id="character.seq">[[character.seq]]</a>
258
 
259
  The C standard library makes widespread use of characters and character
 
60
  valid terms of the types that satisfy the requirements. For every set of
61
  well-defined expression requirements there is a table that specifies an
62
  initial set of the valid expressions and their semantics. Any generic
63
  algorithm (Clause  [[algorithms]]) that uses the well-defined expression
64
  requirements is described in terms of the valid expressions for its
65
+ template type parameters.
66
 
67
  Template argument requirements are sometimes referenced by name. See 
68
  [[type.descriptions]].
69
 
70
  In some cases the semantic requirements are presented as C++code. Such
 
239
  X = X ^ Y; return X;
240
  }
241
  ```
242
 
243
  Here, the names *C0*, *C1*, etc. represent *bitmask elements* for this
244
+ particular bitmask type. All such elements have distinct, nonzero values
245
+ such that, for any pair *Ci* and *Cj* where *i* != *j*, *Ci* & *Ci* is
246
+ nonzero and *Ci* & *Cj* is zero. Additionally, the value 0 is used to
247
+ represent an *empty bitmask*, in which no bitmask elements are set.
248
 
249
  The following terms apply to objects and values of bitmask types:
250
 
251
  - To *set* a value *Y* in an object *X* is to evaluate the expression
252
+ *X* `|=` *Y*.
253
  - To *clear* a value *Y* in an object *X* is to evaluate the expression
254
+ *X* `&= ~`*Y*.
255
+ - The value *Y* *is set* in the object *X* if the expression *X* `&` *Y*
256
  is nonzero.
257
 
258
  ##### Character sequences <a id="character.seq">[[character.seq]]</a>
259
 
260
  The C standard library makes widespread use of characters and character