From Jason Turner

[intro.memory]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp3pvbhg4q/{from.md → to.md} +17 -12
tmp/tmp3pvbhg4q/{from.md → to.md} RENAMED
@@ -1,22 +1,27 @@
1
  ### Memory model <a id="intro.memory">[[intro.memory]]</a>
2
 
3
  The fundamental storage unit in the C++ memory model is the *byte*. A
4
- byte is at least large enough to contain any member of the basic
5
- execution character set [[lex.charset]] and the eight-bit code units of
6
- the Unicode UTF-8 encoding form and is composed of a contiguous sequence
7
- of bits,[^9] the number of which is *implementation-defined*. The least
8
- significant bit is called the *low-order bit*; the most significant bit
9
- is called the *high-order bit*. The memory available to a C++ program
10
- consists of one or more sequences of contiguous bytes. Every byte has a
11
- unique address.
 
 
 
 
12
 
13
  [*Note 1*: The representation of types is described in 
14
- [[basic.types]]. — *end note*]
15
 
16
- A *memory location* is either an object of scalar type or a maximal
17
- sequence of adjacent bit-fields all having nonzero width.
 
18
 
19
  [*Note 2*: Various features of the language, such as references and
20
  virtual functions, might involve additional memory locations that are
21
  not accessible to programs but are managed by the
22
  implementation. — *end note*]
@@ -44,11 +49,11 @@ struct {
44
  int b:5,
45
  c:11,
46
  :0,
47
  d:8;
48
  struct {int ee:8;} e;
49
- }
50
  ```
51
 
52
  contains four separate memory locations: The member `a` and bit-fields
53
  `d` and `e.ee` are each separate memory locations, and can be modified
54
  concurrently without interfering with each other. The bit-fields `b` and
 
1
  ### Memory model <a id="intro.memory">[[intro.memory]]</a>
2
 
3
  The fundamental storage unit in the C++ memory model is the *byte*. A
4
+ byte is at least large enough to contain the ordinary literal encoding
5
+ of any element of the basic literal character set [[lex.charset]] and
6
+ the eight-bit code units of the Unicode[^5]
7
+
8
+ UTF-8 encoding form and is composed of a contiguous sequence of
9
+ bits,[^6]
10
+
11
+ the number of which is *implementation-defined*. The least significant
12
+ bit is called the *low-order bit*; the most significant bit is called
13
+ the *high-order bit*. The memory available to a C++ program consists of
14
+ one or more sequences of contiguous bytes. Every byte has a unique
15
+ address.
16
 
17
  [*Note 1*: The representation of types is described in 
18
+ [[basic.types.general]]. — *end note*]
19
 
20
+ A *memory location* is either an object of scalar type that is not a
21
+ bit-field or a maximal sequence of adjacent bit-fields all having
22
+ nonzero width.
23
 
24
  [*Note 2*: Various features of the language, such as references and
25
  virtual functions, might involve additional memory locations that are
26
  not accessible to programs but are managed by the
27
  implementation. — *end note*]
 
49
  int b:5,
50
  c:11,
51
  :0,
52
  d:8;
53
  struct {int ee:8;} e;
54
+ };
55
  ```
56
 
57
  contains four separate memory locations: The member `a` and bit-fields
58
  `d` and `e.ee` are each separate memory locations, and can be modified
59
  concurrently without interfering with each other. The bit-fields `b` and