tmp/tmpms8chabv/{from.md → to.md}
RENAMED
|
@@ -1,20 +1,20 @@
|
|
| 1 |
### Alignment <a id="basic.align">[[basic.align]]</a>
|
| 2 |
|
| 3 |
-
Object types have *alignment requirements*
|
| 4 |
-
[[basic.compound]]
|
| 5 |
-
an object of that type may be allocated. An
|
| 6 |
-
*implementation-defined* integer value representing
|
| 7 |
-
between successive addresses at which a given object
|
| 8 |
-
An object type imposes an alignment requirement on
|
| 9 |
-
type; stricter alignment can be requested using the
|
| 10 |
-
[[dcl.align]].
|
| 11 |
|
| 12 |
A *fundamental alignment* is represented by an alignment less than or
|
| 13 |
equal to the greatest alignment supported by the implementation in all
|
| 14 |
contexts, which is equal to `alignof(std::max_align_t)`
|
| 15 |
-
[[support.types]]. The alignment required for a type
|
| 16 |
when it is used as the type of a complete object and when it is used as
|
| 17 |
the type of a subobject.
|
| 18 |
|
| 19 |
[*Example 1*:
|
| 20 |
|
|
@@ -72,12 +72,12 @@ Comparing alignments is meaningful and provides the obvious results:
|
|
| 72 |
- Two alignments are different when their numeric values are not equal.
|
| 73 |
- When an alignment is larger than another it represents a stricter
|
| 74 |
alignment.
|
| 75 |
|
| 76 |
[*Note 3*: The runtime pointer alignment function [[ptr.align]] can be
|
| 77 |
-
used to obtain an aligned pointer within a buffer;
|
| 78 |
-
|
| 79 |
-
|
| 80 |
|
| 81 |
If a request for a specific extended alignment in a specific context is
|
| 82 |
not supported by an implementation, the program is ill-formed.
|
| 83 |
|
|
|
|
| 1 |
### Alignment <a id="basic.align">[[basic.align]]</a>
|
| 2 |
|
| 3 |
+
Object types have *alignment requirements*
|
| 4 |
+
[[basic.fundamental]], [[basic.compound]] which place restrictions on
|
| 5 |
+
the addresses at which an object of that type may be allocated. An
|
| 6 |
+
*alignment* is an *implementation-defined* integer value representing
|
| 7 |
+
the number of bytes between successive addresses at which a given object
|
| 8 |
+
can be allocated. An object type imposes an alignment requirement on
|
| 9 |
+
every object of that type; stricter alignment can be requested using the
|
| 10 |
+
alignment specifier [[dcl.align]].
|
| 11 |
|
| 12 |
A *fundamental alignment* is represented by an alignment less than or
|
| 13 |
equal to the greatest alignment supported by the implementation in all
|
| 14 |
contexts, which is equal to `alignof(std::max_align_t)`
|
| 15 |
+
[[support.types]]. The alignment required for a type may be different
|
| 16 |
when it is used as the type of a complete object and when it is used as
|
| 17 |
the type of a subobject.
|
| 18 |
|
| 19 |
[*Example 1*:
|
| 20 |
|
|
|
|
| 72 |
- Two alignments are different when their numeric values are not equal.
|
| 73 |
- When an alignment is larger than another it represents a stricter
|
| 74 |
alignment.
|
| 75 |
|
| 76 |
[*Note 3*: The runtime pointer alignment function [[ptr.align]] can be
|
| 77 |
+
used to obtain an aligned pointer within a buffer; an
|
| 78 |
+
*alignment-specifier* [[dcl.align]] can be used to align storage
|
| 79 |
+
explicitly. — *end note*]
|
| 80 |
|
| 81 |
If a request for a specific extended alignment in a specific context is
|
| 82 |
not supported by an implementation, the program is ill-formed.
|
| 83 |
|