[#BloombergLP-bsls] = xref:BloombergLP.adoc[BloombergLP]::bsls :relfileprefix: ../ :mrdocs: Namespace for platform‐trait definitions. == Types [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsls/AlignedBuffer.adoc[`AlignedBuffer`] | Uninitialized buffer of specified `SIZE` and `ALIGNMENT`. | xref:BloombergLP/bsls/AlignedBuffer_Data.adoc[`AlignedBuffer_Data`] | Private char array of specified `SIZE` aligned to `ALIGNMENT`. | xref:BloombergLP/bsls/Alignment.adoc[`Alignment`] | This `struct` provides a namespace for enumerating the set of strategies for aligning arbitrary blocks of memory. | xref:BloombergLP/bsls/AlignmentFromType.adoc[`AlignmentFromType`] | This `struct` computes the required alignment for the specified `TYPE`. | xref:BloombergLP/bsls/AlignmentImpCalc-098.adoc[`AlignmentImpCalc`] | This `struct` provides an enumerator `VALUE` that is initialized to the required alignment for the specified `TYPE`. | xref:BloombergLP/bsls/AlignmentImpMatch.adoc[`AlignmentImpMatch`] | Namespace for a set of overloaded `match` functions, as defined by the macro `BSLS_ALIGNMENTIMP_MATCH_FUNC`. | xref:BloombergLP/bsls/AlignmentImpPriorityToType-059.adoc[`AlignmentImpPriorityToType`] | Specializations of this `struct` provide a primitive type (as a `Type` `typedef`) that corresponds to the specified `PRIORITY` level. | xref:BloombergLP/bsls/AlignmentImpTag.adoc[`AlignmentImpTag`] | This `struct` defines a unique type having the specified compile‐time `SIZE`. | xref:BloombergLP/bsls/AlignmentImp_Priority-0e.adoc[`AlignmentImp_Priority`] | Unique type used as a trailing overload‐resolution parameter. | xref:BloombergLP/bsls/AlignmentToType-0c.adoc[`AlignmentToType`] | This `struct` provides a `typedef`, `Type`, that aliases a type having the specified `ALIGNMENT` requirement. | xref:BloombergLP/bsls/AlignmentUtil.adoc[`AlignmentUtil`] | This `struct` provides a namespace for a suite of compile‐time constants, types, and pure procedures that provide platform‐dependent alignment information. | xref:BloombergLP/bsls/Assert.adoc[`Assert`] | Utility that administers the process‐wide assertion‐failure handler. | xref:BloombergLP/bsls/AssertFailureHandlerGuard.adoc[`AssertFailureHandlerGuard`] | Guard that temporarily replaces the assertion‐failure handler. | xref:BloombergLP/bsls/AssertImpUtil.adoc[`AssertImpUtil`] | This "implementation utility" `struct` provides static functions with shared functionality that is made use of by both `bsls_assert` and `bsls_review`. | xref:BloombergLP/bsls/AssertImpUtil_UseContractsNo.adoc[`AssertImpUtil_UseContractsNo`] | Tag type indicating language‐level contracts are not enabled. | xref:BloombergLP/bsls/AssertTest.adoc[`AssertTest`] | Utility providing methods for negative testing of assertion macros. | xref:BloombergLP/bsls/AssertTestException.adoc[`AssertTestException`] | Immutable exception conveying failed‐assertion context to a test handler. | xref:BloombergLP/bsls/AssertTestException_String.adoc[`AssertTestException_String`] | This non‐assignable class owns a null‐terminated string, provides no accessors to manipulate that string, and allocates a new copy of that string when copied. | xref:BloombergLP/bsls/AssertTestHandlerGuard.adoc[`AssertTestHandlerGuard`] | Guard that installs the negative‐testing assertion and review handlers. | xref:BloombergLP/bsls/AssertViolation.adoc[`AssertViolation`] | This class is an unconstrained _in‐core_ value‐semantic class that characterizes the details of a assert failure that has occurred. | xref:BloombergLP/bsls/AtomicBool.adoc[`AtomicBool`] | Atomic boolean providing sequentially consistent operations by default. | xref:BloombergLP/bsls/AtomicInt.adoc[`AtomicInt`] | Atomic integer providing sequentially consistent operations by default. | xref:BloombergLP/bsls/AtomicInt64.adoc[`AtomicInt64`] | Atomic 64‐bit integer with sequentially consistent operations by default. | xref:BloombergLP/bsls/AtomicOperations.adoc[`AtomicOperations`] | Namespace for a suite of platform atomic operations. | xref:BloombergLP/bsls/AtomicOperations_ALL_ALL_ClangIntrinsics.adoc[`AtomicOperations_ALL_ALL_ClangIntrinsics`] | Platform‐specific atomic operations using clang `__c11_atomic_*` intrinsics. | xref:BloombergLP/bsls/AtomicOperations_Default32.adoc[`AtomicOperations_Default32`] | Default atomic operations for a generic 32‐bit platform. | xref:BloombergLP/bsls/AtomicOperations_Default64-0b.adoc[`AtomicOperations_Default64`] | Default atomic operations for a generic 64‐bit platform. | xref:BloombergLP/bsls/AtomicOperations_DefaultInt-08.adoc[`AtomicOperations_DefaultInt`] | Default implementations of non‐essential 32‐bit integer atomic operations. | xref:BloombergLP/bsls/AtomicOperations_DefaultInt64-0a.adoc[`AtomicOperations_DefaultInt64`] | Default implementations of non‐essential 64‐bit integer atomic operations. | xref:BloombergLP/bsls/AtomicOperations_DefaultPointer32.adoc[`AtomicOperations_DefaultPointer32`] | Default implementations of non‐essential 32‐bit pointer atomic operations. | xref:BloombergLP/bsls/AtomicOperations_DefaultPointer64-061.adoc[`AtomicOperations_DefaultPointer64`] | Default implementations of non‐essential 64‐bit pointer atomic operations. | xref:BloombergLP/bsls/AtomicOperations_DefaultUint-0d7.adoc[`AtomicOperations_DefaultUint`] | Default implementations of non‐essential 32‐bit unsigned atomic operations. | xref:BloombergLP/bsls/AtomicOperations_DefaultUint64-00.adoc[`AtomicOperations_DefaultUint64`] | Default implementations of non‐essential 64‐bit unsigned atomic operations. | xref:BloombergLP/bsls/AtomicOperations_X64_ALL_GCC.adoc[`AtomicOperations_X64_ALL_GCC`] | | xref:BloombergLP/bsls/AtomicPointer.adoc[`AtomicPointer`] | Atomic pointer providing sequentially consistent operations by default. | xref:BloombergLP/bsls/AtomicUint.adoc[`AtomicUint`] | Atomic unsigned integer with sequentially consistent operations by default. | xref:BloombergLP/bsls/AtomicUint64.adoc[`AtomicUint64`] | Atomic 64‐bit unsigned integer with sequentially consistent ops by default. | xref:BloombergLP/bsls/Atomic_TypeTraits-03.adoc[`Atomic_TypeTraits`] | Forward declaration of atomic type traits for implementation class `IMP`. | xref:BloombergLP/bsls/BlockGrowth.adoc[`BlockGrowth`] | This struct provides a namespace for memory block growth strategies for pools, allocators, containers, etc. | xref:BloombergLP/bsls/BslExceptionUtil.adoc[`BslExceptionUtil`] | This `struct` provides a namespace for `static` utility functions that throw standard library exceptions. | xref:BloombergLP/bsls/BslLock.adoc[`BslLock`] | Light‐weight, portable wrapper of an OS‐level mutex. | xref:BloombergLP/bsls/BslLockGuard.adoc[`BslLockGuard`] | RAII guard that acquires and releases a `bsls::BslLock`. | xref:BloombergLP/bsls/BslLockImpl_pthread.adoc[`BslLockImpl_pthread`] | This class provides a non‐recursive pthread mutex for intra‐process use. | xref:BloombergLP/bsls/BslOnce.adoc[`BslOnce`] | Gate‐keeper that ensures a block of code is executed only once. | xref:BloombergLP/bsls/BslOnceGuard.adoc[`BslOnceGuard`] | This class provides a guard for managing a `BslOnce` for the purpose of executing a block of code (only) once. | xref:BloombergLP/bsls/BslSourceNameParserUtil.adoc[`BslSourceNameParserUtil`] | Namespace for utilities that parse BDE‐style source file names. | xref:BloombergLP/bsls/BslTestUtil.adoc[`BslTestUtil`] | Utilities for writing `bsl` test drivers without iostream. | xref:BloombergLP/bsls/BuildTargetExcYes.adoc[`BuildTargetExcYes`] | Tag type indicating that the build target has exceptions enabled. | xref:BloombergLP/bsls/ByteOrderUtil.adoc[`ByteOrderUtil`] | This `class` provides a namespace for functions used for reversing the byte order of values having integral type. | xref:BloombergLP/bsls/FuzzTestHandlerGuard.adoc[`FuzzTestHandlerGuard`] | Guard that installs and restores fuzz‐test assertion and precondition handlers. | xref:BloombergLP/bsls/FuzzTestPreconditionException.adoc[`FuzzTestPreconditionException`] | Immutable exception conveying failed‐precondition context to a test handler. | xref:BloombergLP/bsls/FuzzTestPreconditionTracker.adoc[`FuzzTestPreconditionTracker`] | This utility class is used by the preprocessor macros to appropriately handle precondition violations that occur in different levels and components. | xref:BloombergLP/bsls/FuzzTest_TestUtil.adoc[`FuzzTest_TestUtil`] | Provide sample functions that trigger assert and review violations. | xref:BloombergLP/bsls/Log.adoc[`Log`] | This class provides a namespace for low‐level logging utilities. | xref:BloombergLP/bsls/LogSeverity.adoc[`LogSeverity`] | This `struct` provides a namespace for enumerating logging severity levels. | xref:BloombergLP/bsls/NameOf.adoc[`NameOf`] | Provide a means to display the type name of its template parameter `TYPE`. | xref:BloombergLP/bsls/NameOf_Base.adoc[`NameOf_Base`] | This `class` provide non‐template implementation code for the `NameOf` template class. | xref:BloombergLP/bsls/ObjectBuffer.adoc[`ObjectBuffer`] | Raw buffer sized and aligned to hold an object of type `TYPE`. | xref:BloombergLP/bsls/OutputRedirector.adoc[`OutputRedirector`] | Redirect `stdout` or `stderr` to a temporary capture file. | xref:BloombergLP/bsls/PerformanceHint.adoc[`PerformanceHint`] | This `struct` provides a namespace for a suite of functions that give performance hints to the compiler or hardware. | xref:BloombergLP/bsls/Platform.adoc[`Platform`] | Namespace for platform‐trait definitions. | xref:BloombergLP/bsls/PlatformUtil.adoc[`PlatformUtil`] | Provide a namespace for a suite of `typedef`s and pure procedures that encapsulate, platform‐dependent types and APIs. | xref:BloombergLP/bsls/PointerCastUtil.adoc[`PointerCastUtil`] | This `struct` provides a namespace for a `static` utility function that allows casting between function and data pointers. | xref:BloombergLP/bsls/PreconditionsHandler.adoc[`PreconditionsHandler`] | Utility for managing begin/end precondition handler callbacks. | xref:BloombergLP/bsls/ProtocolTest.adoc[`ProtocolTest`] | Mechanism that tests protocol‐class concerns via `test*` methods and `operator‐>`. | xref:BloombergLP/bsls/ProtocolTestImp.adoc[`ProtocolTestImp`] | Base class for a test implementation of the `BSLS_PROTOCOL` protocol. | xref:BloombergLP/bsls/ProtocolTest_AsBigAsT.adoc[`ProtocolTest_AsBigAsT`] | This auxiliary structure has a size no less than the size of (template parameter) `T`. | xref:BloombergLP/bsls/ProtocolTest_Dtor.adoc[`ProtocolTest_Dtor`] | Helper that verifies a protocol destructor is declared `virtual`. | xref:BloombergLP/bsls/ProtocolTest_IsAbstract.adoc[`ProtocolTest_IsAbstract`] | Compile‐time metafunction that reports whether `T` is an abstract type. | xref:BloombergLP/bsls/ProtocolTest_MethodReturnRefType.adoc[`ProtocolTest_MethodReturnRefType`] | Proxy return type convertible to any reference type. | xref:BloombergLP/bsls/ProtocolTest_MethodReturnType.adoc[`ProtocolTest_MethodReturnType`] | Proxy return type convertible to any non‐reference type. | xref:BloombergLP/bsls/ProtocolTest_Status.adoc[`ProtocolTest_Status`] | This class keeps track of the test status, which includes the status of the last test and the number of failures across all tests. | xref:BloombergLP/bsls/Review.adoc[`Review`] | Utility that administers the process‐wide review‐failure handler. | xref:BloombergLP/bsls/ReviewFailureHandlerGuard.adoc[`ReviewFailureHandlerGuard`] | Guard that temporarily replaces the review failure handler. | xref:BloombergLP/bsls/ReviewViolation.adoc[`ReviewViolation`] | This class is an unconstrained _in‐core_ value‐semantic class that characterizes the details of a review failure that has occurred. | xref:BloombergLP/bsls/SpinLock.adoc[`SpinLock`] | Statically‐initializable mutex that spins instead of blocking. | xref:BloombergLP/bsls/SpinLockGuard.adoc[`SpinLockGuard`] | This type implements a scoped guard for `SpinLock`. | xref:BloombergLP/bsls/SpinLock_MemberInitializer.adoc[`SpinLock_MemberInitializer`] | Empty tag type for legacy `SpinLock` member initialization. | xref:BloombergLP/bsls/StackAddressUtil.adoc[`StackAddressUtil`] | This struct provides a namespace for the function to obtain return addresses from the stack. | xref:BloombergLP/bsls/Stopwatch.adoc[`Stopwatch`] | This class accumulates system, user, and wall times of the current process. | xref:BloombergLP/bsls/SystemClockType.adoc[`SystemClockType`] | This `struct` provides a namespace for enumerating the set of system clock types. | xref:BloombergLP/bsls/SystemTime.adoc[`SystemTime`] | This `struct` provides a namespace for system‐time‐retrieval functions. | xref:BloombergLP/bsls/TimeInterval.adoc[`TimeInterval`] | A time interval with nanosecond resolution. | xref:BloombergLP/bsls/TimeInterval_DurationTraits.adoc[`TimeInterval_DurationTraits`] | Trait metafunction that determines whether the `std::chrono::duration<REP, PERIOD>` object can be converted to `bsls::TimeInterval` either implicitly or explicitly. | xref:BloombergLP/bsls/TimeInterval_IsDuration-032.adoc[`TimeInterval_IsDuration`] | Template metafunction to determine if the specified `TYPE` is a `std::chrono::duration`. | xref:BloombergLP/bsls/TimeInterval_RepTraits.adoc[`TimeInterval_RepTraits`] | Trait metafunction that determines whether the specified `REP` type is considered a floating point type. | xref:BloombergLP/bsls/TimeUtil.adoc[`TimeUtil`] | This `struct` provides a namespace for platform‐neutral system‐clock procedures. | xref:BloombergLP/bsls/Types.adoc[`Types`] | Provide a namespace for a suite of `typedef`s that encapsulate platform‐dependent types. | xref:BloombergLP/bsls/UnspecifiedBool-03.adoc[`UnspecifiedBool`] | This class provides a member, `d_member`, whose pointer‐to‐member may be used as an "unspecified boolean type" for implicit conversion operators. | xref:BloombergLP/bsls/Util.adoc[`Util`] | This `struct` provides a namespace for essential low‐level functions for implementing portable generic facilities such as the C++ standard library. | xref:BloombergLP/bsls/Util_AssertNotLvalue-04.adoc[`Util_AssertNotLvalue`] | Metafunction that provides a dummy `type` when `TYPE` is not an lvalue. | xref:BloombergLP/bsls/Util_Identity.adoc[`Util_Identity`] | Identity metafunction that aliases its template parameter as `type`. | xref:BloombergLP/bsls/Util_RemoveReference-0b.adoc[`Util_RemoveReference`] | Metafunction providing the referenced type of the specified `TYPE`. |=== == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsls/AssertImpUtil_UseContracts.adoc[`AssertImpUtil_UseContracts`] | Alias selecting the contracts tag type for the current build. | xref:BloombergLP/bsls/BuildTargetExc.adoc[`BuildTargetExc`] | Tag type indicating that the build target has exceptions enabled. |=== == Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsls/debugprint-0d3.adoc[`debugprint`] | `debugprint` overloads | xref:BloombergLP/bsls/nameOfType.adoc[`nameOfType`] | Return the name of the type of the object passed to this function. | xref:BloombergLP/bsls/operator_h.adoc[`operator""_h`] | Convert the specified `hours` literal to a `TimeInterval`. | xref:BloombergLP/bsls/operator_min.adoc[`operator""_min`] | Convert the specified `minutes` literal to a `TimeInterval`. | xref:BloombergLP/bsls/operator_ms.adoc[`operator""_ms`] | Convert the specified `milliseconds` literal to a `TimeInterval`. | xref:BloombergLP/bsls/operator_ns.adoc[`operator""_ns`] | Convert the specified `nanoseconds` literal to a `TimeInterval`. | xref:BloombergLP/bsls/operator_s.adoc[`operator""_s`] | Convert the specified `seconds` literal to a `TimeInterval`. | xref:BloombergLP/bsls/operator_us.adoc[`operator""_us`] | Convert the specified `microseconds` literal to a `TimeInterval`. | xref:BloombergLP/bsls/operator_plus-08.adoc[`operator+`] | Addition operators | xref:BloombergLP/bsls/operator_minus-005.adoc[`operator‐`] | Unary minus operators | xref:BloombergLP/bsls/operator_lshift.adoc[`operator<<`] | Write the specified `timeInterval` to the specified output `stream`. | xref:BloombergLP/bsls/operator_eq-07.adoc[`operator==`] | Equality operators | xref:BloombergLP/bsls/operator_not_eq-0a.adoc[`operator!=`] | Inequality operators | xref:BloombergLP/bsls/operator_lt-05.adoc[`operator<`] | Less‐than operators | xref:BloombergLP/bsls/operator_le-09.adoc[`operator<=`] | Same as the preceding overload. | xref:BloombergLP/bsls/operator_gt-08.adoc[`operator>`] | Same as the preceding overload. | xref:BloombergLP/bsls/operator_ge-041.adoc[`operator>=`] | Same as the preceding overload. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#