Update conversion.adoc to reflect endian_reverse changes

This commit is contained in:
Peter Dimov
2019-04-27 01:03:55 +03:00
parent 19e382d25a
commit 18d86d3f36

View File

@ -55,14 +55,8 @@ namespace endian
little = `see below`,
};
int8_t endian_reverse(int8_t x) noexcept;
int16_t endian_reverse(int16_t x) noexcept;
int32_t endian_reverse(int32_t x) noexcept;
int64_t endian_reverse(int64_t x) noexcept;
uint8_t endian_reverse(uint8_t x) noexcept;
uint16_t endian_reverse(uint16_t x) noexcept;
uint32_t endian_reverse(uint32_t x) noexcept;
uint64_t endian_reverse(uint64_t x) noexcept;
template <class Endian>
Endian endian_reverse(Endian x) noexcept;
template <class EndianReversible>
EndianReversible big_to_native(EndianReversible x) noexcept;
@ -72,6 +66,7 @@ namespace endian
EndianReversible little_to_native(EndianReversible x) noexcept;
template <class EndianReversible>
EndianReversible native_to_little(EndianReversible x) noexcept;
template <order O1, order O2, class EndianReversible>
EndianReversible conditional_reverse(EndianReversible x) noexcept;
template <class EndianReversible>
@ -89,6 +84,7 @@ namespace endian
void little_to_native_inplace(EndianReversibleInplace& x) noexcept;
template <class EndianReversibleInplace>
void native_to_little_inplace(EndianReversibleInplace& x) noexcept;
template <order O1, order O2, class EndianReversibleInplace>
void conditional_reverse_inplace(EndianReversibleInplace& x) noexcept;
template <class EndianReversibleInplace>
@ -184,23 +180,14 @@ See `example/udt_conversion_example.cpp` for an example user-defined type.
### Functions
```
int8_t endian_reverse(int8_t x) noexcept;
int16_t endian_reverse(int16_t x) noexcept;
int32_t endian_reverse(int32_t x) noexcept;
int64_t endian_reverse(int64_t x) noexcept;
uint8_t endian_reverse(uint8_t x) noexcept;
uint16_t endian_reverse(uint16_t x) noexcept;
uint32_t endian_reverse(uint32_t x) noexcept;
uint64_t endian_reverse(uint64_t x) noexcept;
template <class Endian>
Endian endian_reverse(Endian x) noexcept;
```
[none]
* {blank}
+
Requires:: `Endian` must be a standard integral type that is not `bool`.
Returns:: `x`, with the order of its constituent bytes reversed.
Remarks:: The type of `x` meets the `EndianReversible` requirements.
+
NOTE: The Boost.Endian library does not provide overloads for the {cpp} standard
library supplied types.
```
template <class EndianReversible>
@ -337,13 +324,6 @@ code in many real-world endian use cases and are more efficient for user-defined
types that have members such as string data that do not need to be reversed.
Thus both forms are provided.
*Why are exact-length 8, 16, 32, and 64-bit integers supported rather than the
built-in char, short, int, long, long long, etc?*
* The primary use case, portable file or network data, needs these de facto
standard sizes. Using types that vary with the platform would greatly limit
portability for both programs and data.
*Why not use the Linux names (htobe16, htole16, be16toh, le16toh, etc.) ?*
* Those names are non-standard and vary even between POSIX-like operating