[#BloombergLP-bsls-PlatformUtil] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bsls.adoc[bsls]::PlatformUtil :relfileprefix: ../../ :mrdocs: Provide a namespace for a suite of `typedef`s and pure procedures that encapsulate, platform‐dependent types and APIs. == Synopsis Declared in `<bsls_platformutil.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct PlatformUtil; ---- == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsls/PlatformUtil/Int64.adoc[`Int64`] | 64‐bit signed integer type for all supported platforms. | xref:BloombergLP/bsls/PlatformUtil/IntPtr.adoc[`IntPtr`] | The aliases `UintPtr` and `IntPtr` are guaranteed to have the same size as pointers. | xref:BloombergLP/bsls/PlatformUtil/MaxAlign.adoc[`MaxAlign`] | The alias `MaxAlign` refers to a type that is maximally‐aligned on the current platform. | xref:BloombergLP/bsls/PlatformUtil/Uint64.adoc[`Uint64`] | The aliases `Int64` and `Uint64` stand for whatever type `Types` implements for the appropriate supported platforms. | xref:BloombergLP/bsls/PlatformUtil/UintPtr.adoc[`UintPtr`] | Unsigned integer type guaranteed to have the same size as pointers. | xref:BloombergLP/bsls/PlatformUtil/size_type.adoc[`size_type`] | The alias `size_type` refers to the preferred type for denoting a number of elements in either `bslma` allocators or container types. Note that this type is signed, as negative values may make sense in certain contexts. Also note that the standard‐compliant allocators (e.g., `bsl::allocator` and `std::allocator`) use an _unsigned_ size type, but that is fine because they also have a mechanism (`max_size`) to determine overflows resulting from converting from one size type to the other. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsls/PlatformUtil/isBigEndian.adoc[`isBigEndian`] | Return `true` if this platform is "big‐endian", and `false` otherwise. Note that "big‐endian" (i.e., the most significant byte of data at the lowest byte address) is consistent with network byte order. | xref:BloombergLP/bsls/PlatformUtil/isLittleEndian.adoc[`isLittleEndian`] | Return `true` if this platform is "little‐endian", and `false` otherwise. Note that "little‐endian" (i.e., the least significant byte of data at the lowest byte address) is inconsistent with network byte order. | xref:BloombergLP/bsls/PlatformUtil/roundUpToMaximalAlignment.adoc[`roundUpToMaximalAlignment`] | Return the specified `size` (in bytes) rounded up to the smallest integral multiple of the maximum alignment. The behavior is undefined unless `0 <= size`. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#