Quick Links:

bal | bbl | bdl | bsl

Components

Package bsls
[Package Group bsl]

Provide system-level utilities for bsl. More...

Components

 Component bsls_alignedbuffer
 

Provide raw buffers with user-specified size and alignment.

 Component bsls_alignment
 

Provide a namespace for enumerating memory alignment strategies.

 Component bsls_alignmentfromtype
 

Provide a meta-function that maps a TYPE to its alignment.

 Component bsls_alignmentimp
 

Provide implementation meta-functions for alignment computation.

 Component bsls_alignmenttotype
 

Provide a meta-function mapping an ALIGNMENT to a primitive type.

 Component bsls_alignmentutil
 

Provide constants, types, and operations related to alignment.

 Component bsls_annotation: DEPRECATED
 

Provide support for compiler annotations for compile-time safety.

 Component bsls_assert
 

Provide build-specific, runtime-configurable assertion macros.

 Component bsls_assert_macroreset: PRIVATE
 

Undefine all macros from bsls_assert.h and bsls_review.h.

 Component bsls_assertimputil
 

Provide utilities to implement bsls_assert and bsls_review.

 Component bsls_asserttest
 

Provide a test facility for assertion macros.

 Component bsls_asserttest_macroreset: PRIVATE
 

Undefine macros related to bsls_asserttest.h.

 Component bsls_asserttestexception
 

Provide an exception type to support testing for failed assertions.

 Component bsls_atomic
 

Provide types with atomic operations.

 Component bsls_atomicoperations
 

Provide platform-independent atomic operations.

 Component bsls_atomicoperations_all_all_clangintrinsics: PRIVATE
 

Implement atomic operations using clang __c11_atomic_* intrinsics.

 Component bsls_atomicoperations_all_all_gccintrinsics: PRIVATE
 

Implement atomic operations using gcc __atomic_* intrinsics.

 Component bsls_atomicoperations_arm_all_gcc: PRIVATE
 

Provide implementations of atomic operations for ARM/GCC.

 Component bsls_atomicoperations_default: PRIVATE
 

Provide default implementation for atomic operations.

 Component bsls_atomicoperations_powerpc32_aix_xlc: PRIVATE
 

Provide implementations of atomic operations for PowerPC/AIX-32bit.

 Component bsls_atomicoperations_powerpc64_aix_xlc: PRIVATE
 

Provide implementations of atomic operations for PowerPC/AIX-64bit.

 Component bsls_atomicoperations_powerpc_aix_xlc_default: PRIVATE
 

Provide default base implementations of atomics for PowerPC/AIX.

 Component bsls_atomicoperations_powerpc_all_gcc: PRIVATE
 

Provide implementations of atomic operations for gcc on PowerPC.

 Component bsls_atomicoperations_sparc32_sun_cc: PRIVATE
 

Provide implementations of atomic operations for Sparc/Sun (32bit).

 Component bsls_atomicoperations_sparc64_sun_cc: PRIVATE
 

Provide implementations of atomic operations for Sparc/Sun (64bit).

 Component bsls_atomicoperations_sparc_sun_cc_default: PRIVATE
 

Provide default base implementations of atomics for Sparc/Sun.

 Component bsls_atomicoperations_x64_all_gcc: PRIVATE
 

Provide implementations of atomic operations for X86_64/GCC.

 Component bsls_atomicoperations_x64_win_msvc: PRIVATE
 

Provide implementations of atomic operations for X86_64/MSVC/Win64.

 Component bsls_atomicoperations_x86_all_gcc: PRIVATE
 

Provide implementations of atomic operations for X86/GCC.

 Component bsls_atomicoperations_x86_win_msvc: PRIVATE
 

Provide implementations of atomic operations for X86/MSVC/Windows.

 Component bsls_blockgrowth
 

Provide a namespace for memory block growth strategies.

 Component bsls_bsldeprecationinformation
 

Provide a macro to control bsl deprecations by release version.

 Component bsls_bslexceptionutil
 

Provide functions for use in bsl that throw standard exceptions.

 Component bsls_bsllock
 

Provide a platform-independent mutex for use below bslmt.

 Component bsls_bsllockimpl_pthread: PRIVATE
 

Provide a mutex for use below bslmt.

 Component bsls_bsllockimpl_win32: PRIVATE
 

Provide a mutex for use below bslmt for windows platform.

 Component bsls_bslonce
 

Provide BSL a thread-safe way to execute code once per process.

 Component bsls_bslsourcenameparserutil
 

Provide low-level functions for parsing source file names.

 Component bsls_bsltestutil
 

Provide test utilities for bsl that do not use <iostream>.

 Component bsls_buildtarget
 

Provide build-target information in object files.

 Component bsls_byteorder
 

Provide byte-order manipulation macros.

 Component bsls_byteorderutil
 

Provide byte-order swapping functions.

 Component bsls_byteorderutil_impl: PRIVATE
 

Provide implementation of byte-order manipulation functions.

 Component bsls_compilerfeatures
 

Provide macros to identify compiler support for C++11 features.

 Component bsls_consteval
 

Provide macros related to compile-time evaluation.

 Component bsls_cpp11: DEPRECATED
 

Provide macros for C++11 forward compatibility.

 Component bsls_deprecate
 

Provide machinery to deprecate interfaces on a per-version basis.

 Component bsls_deprecatefeature
 

Provide machinery to deprecate entities in C++ code.

 Component bsls_exceptionutil
 

Provide simplified exception constructs for non-exception builds.

 Component bsls_fuzztest
 

Provide macros for use in fuzz testing narrow-contract functions.

 Component bsls_fuzztestpreconditionexception
 

Provide an exception type for handling failed preconditions.

 Component bsls_ident
 

Provide macros for inserting SCM Ids into source files.

 Component bsls_int64: DEPRECATED
 

Provide namespace for platform-dependent 64-bit integer types.

 Component bsls_keyword
 

Provide macros for forward language dialect compatibility.

 Component bsls_libraryfeatures
 

Provide macros to identify native standard library features.

 Component bsls_linkcoercion
 

Provide a way to force a link-time dependency into an object.

 Component bsls_log
 

Provide a namespace for low-level logging functions.

 Component bsls_logseverity
 

Enumerate a set of logging severity levels.

 Component bsls_macroincrement
 

Provide a macro to increment preprocessor numbers.

 Component bsls_macrorepeat
 

repeat a macro invocation with different numeric arguments.

 Component bsls_nameof
 

Provide a NameOf type for displaying template type at run-time.

 Component bsls_nativestd: DEPRECATED
 

Define the namespace native_std as an alias for ::std.

 Component bsls_nullptr
 

Provide a distinct type for null pointer literals.

 Component bsls_objectbuffer
 

Provide raw buffer with size and alignment of user-specified type.

 Component bsls_outputredirector
 

Provide a means for test drivers to redirect and inspect output.

 Component bsls_performancehint
 

Provide performance hints for code optimization.

 Component bsls_platform
 

Provide compile-time support for platform/attribute identification.

 Component bsls_platformutil: DEPRECATED
 

Provide consistent interface for platform-dependent functionality.

 Component bsls_pointercastutil
 

Provide function to cast between function and data pointers.

 Component bsls_preconditions
 

Provide macros for use in fuzz testing narrow contract functions.

 Component bsls_protocoltest
 

Provide classes and macros for testing abstract protocols.

 Component bsls_review
 

Provide assertion macros to safely identify contract violations.

 Component bsls_review_macroreset: PRIVATE
 

Test driver utility to undefine all macros from bsls_review.h.

 Component bsls_spinlock
 

Provide a spin lock.

 Component bsls_stackaddressutil
 

Provide a utility for obtaining return addresses from the stack.

 Component bsls_stopwatch
 

Provide access to user, system, and wall times of current process.

 Component bsls_systemclocktype
 

Enumerate the set of system clock types.

 Component bsls_systemtime
 

Provide utilities to retrieve the system time.

 Component bsls_timeinterval
 

Provide a representation of a time interval.

 Component bsls_timeutil
 

Provide a platform-neutral functional interface to system clocks.

 Component bsls_types
 

Provide a consistent interface for platform-dependent types.

 Component bsls_unspecifiedbool
 

Provide a class supporting the unspecified bool idiom.

 Component bsls_util
 

Provide essential, low-level support for portable generic code.


Detailed Description

Outline
Purpose:
Provide system-level utilities for bsl.
MNEMONIC: Basic Standard Library System utilities (bsls):
Description:
The bsls package provides a variety of system utilities for use by the bsl library. These utilities include:
  • Various buffer types with different alignment properties.
  • Uniform exception handling, even for non-exception build targets.
  • A platform-dependent 64-bit integer type.
  • Platform-identification routines.
  • A timer component, and access to system time facilities.
Note that the above list is not meant to be exhaustive. The sections below provide more information about the individual components.
Hierarchical Synopsis:
The bsls package currently has 83 components having 16 levels of physical dependency. The list below shows the hierarchical ordering of the components. The order of components within each level is not architecturally significant, just alphabetical.
  16. bsls_byteorder

  15. bsls_alignedbuffer
      bsls_alignment
      bsls_byteorderutil
      bsls_platformutil                                  !DEPRECATED!
      bsls_systemtime

  14. bsls_alignmentutil
      bsls_bslexceptionutil
      bsls_fuzztest
      bsls_stopwatch
      bsls_timeinterval

  13. bsls_asserttest
      bsls_byteorderutil_impl                                         !PRIVATE!
      bsls_exceptionutil
      bsls_fuzztestpreconditionexception
      bsls_nameof
      bsls_outputredirector
      bsls_preconditions
      bsls_spinlock
      bsls_timeutil

  12. bsls_assert

  11. bsls_review

  10. bsls_atomic
      bsls_bslonce
      bsls_log

   9. bsls_atomicoperations

   8. bsls_atomicoperations_sparc32_sun_cc                            !PRIVATE!
      bsls_atomicoperations_sparc64_sun_cc                            !PRIVATE!
      bsls_bsllock
      bsls_objectbuffer
      bsls_protocoltest

   7. bsls_alignmentfromtype
      bsls_assertimputil
      bsls_asserttestexception
      bsls_atomicoperations_sparc_sun_cc_default                      !PRIVATE!
      bsls_bsllockimpl_win32                                          !PRIVATE!
      bsls_cpp11                                         !DEPRECATED!
      bsls_libraryfeatures
      bsls_pointercastutil
      bsls_util

   6. bsls_alignmenttotype
      bsls_annotation                                    !DEPRECATED!
      bsls_atomicoperations_powerpc32_aix_xlc                         !PRIVATE!
      bsls_atomicoperations_powerpc64_aix_xlc                         !PRIVATE!
      bsls_consteval
      bsls_keyword
      bsls_nullptr
      bsls_performancehint

   5. bsls_atomicoperations_all_all_clangintrinsics                   !PRIVATE!
      bsls_atomicoperations_all_all_gccintrinsics                     !PRIVATE!
      bsls_atomicoperations_arm_all_gcc                               !PRIVATE!
      bsls_atomicoperations_powerpc_aix_xlc_default                   !PRIVATE!
      bsls_atomicoperations_powerpc_all_gcc                           !PRIVATE!
      bsls_atomicoperations_x64_all_gcc                               !PRIVATE!
      bsls_atomicoperations_x64_win_msvc                              !PRIVATE!
      bsls_atomicoperations_x86_all_gcc                               !PRIVATE!
      bsls_atomicoperations_x86_win_msvc                              !PRIVATE!
      bsls_bsllockimpl_pthread                                        !PRIVATE!
      bsls_compilerfeatures

   4. bsls_assert_macroreset                                          !PRIVATE!
      bsls_asserttest_macroreset                                      !PRIVATE!
      bsls_atomicoperations_default                                   !PRIVATE!
      bsls_buildtarget
      bsls_int64                                         !DEPRECATED!
      bsls_logseverity
      bsls_review_macroreset                                          !PRIVATE!
      bsls_stackaddressutil
      bsls_systemclocktype
      bsls_unspecifiedbool

   3. bsls_alignmentimp
      bsls_bslsourcenameparserutil
      bsls_bsltestutil
      bsls_linkcoercion
      bsls_types

   2. bsls_blockgrowth
      bsls_bsldeprecationinformation
      bsls_macroincrement
      bsls_macrorepeat
      bsls_nativestd                                     !DEPRECATED!
      bsls_platform

   1. bsls_deprecate
      bsls_deprecatefeature
      bsls_ident
Component Synopsis:
bsls_alignedbuffer:
Provide raw buffers with user-specified size and alignment.
bsls_alignment:
Provide a namespace for enumerating memory alignment strategies.
bsls_alignmentfromtype:
Provide a meta-function that maps a TYPE to its alignment.
bsls_alignmentimp:
Provide implementation meta-functions for alignment computation.
bsls_alignmenttotype:
Provide a meta-function mapping an ALIGNMENT to a primitive type.
bsls_alignmentutil:
Provide constants, types, and operations related to alignment.
bsls_annotation: DEPRECATED
Provide support for compiler annotations for compile-time safety.
bsls_assert:
Provide build-specific, runtime-configurable assertion macros.
bsls_assert_macroreset: PRIVATE
Undefine all macros from bsls_assert.h and bsls_review.h.
bsls_assertimputil:
Provide utilities to implement bsls_assert and bsls_review.
bsls_asserttest:
Provide a test facility for assertion macros.
bsls_asserttest_macroreset: PRIVATE
Undefine macros related to bsls_asserttest.h.
bsls_asserttestexception:
Provide an exception type to support testing for failed assertions.
bsls_atomic:
Provide types with atomic operations.
bsls_atomicoperations:
Provide platform-independent atomic operations.
bsls_atomicoperations_all_all_clangintrinsics: PRIVATE
Implement atomic operations using clang __c11_atomic_* intrinsics
bsls_atomicoperations_all_all_gccintrinsics: PRIVATE
Implement atomic operations using gcc __atomic_* intrinsics.
bsls_atomicoperations_arm_all_gcc: PRIVATE
Provide implementations of atomic operations for ARM/GCC.
bsls_atomicoperations_default: PRIVATE
Provide default implementation for atomic operations.
bsls_atomicoperations_powerpc32_aix_xlc: PRIVATE
Provide implementations of atomic operations for PowerPC/AIX-32bit.
bsls_atomicoperations_powerpc64_aix_xlc: PRIVATE
Provide implementations of atomic operations for PowerPC/AIX-64bit.
bsls_atomicoperations_powerpc_aix_xlc_default: PRIVATE
Provide default base implementations of atomics for PowerPC/AIX.
bsls_atomicoperations_powerpc_all_gcc: PRIVATE
Provide implementations of atomic operations for gcc on PowerPC
bsls_atomicoperations_sparc32_sun_cc: PRIVATE
Provide implementations of atomic operations for Sparc/Sun (32bit).
bsls_atomicoperations_sparc64_sun_cc: PRIVATE
Provide implementations of atomic operations for Sparc/Sun (64bit).
bsls_atomicoperations_sparc_sun_cc_default: PRIVATE
Provide default base implementations of atomics for Sparc/Sun.
bsls_atomicoperations_x64_all_gcc: PRIVATE
Provide implementations of atomic operations for X86_64/GCC.
bsls_atomicoperations_x64_win_msvc: PRIVATE
Provide implementations of atomic operations for X86_64/MSVC/Win64.
bsls_atomicoperations_x86_all_gcc: PRIVATE
Provide implementations of atomic operations for X86/GCC.
bsls_atomicoperations_x86_win_msvc: PRIVATE
Provide implementations of atomic operations for X86/MSVC/Windows.
bsls_blockgrowth:
Provide a namespace for memory block growth strategies.
bsls_bsldeprecationinformation:
Provide a macro to control bsl deprecations by release version.
bsls_bslexceptionutil:
Provide functions for use in bsl that throw standard exceptions.
bsls_bsllock:
Provide a platform-independent mutex for use below bslmt.
bsls_bsllockimpl_pthread: PRIVATE
Provide a mutex for use below bslmt.
bsls_bsllockimpl_win32: PRIVATE
Provide a mutex for use below bslmt for windows platform.
bsls_bslonce:
Provide BSL a thread-safe way to execute code once per process.
bsls_bslsourcenameparserutil:
Provide low-level functions for parsing source file names.
bsls_bsltestutil:
Provide test utilities for bsl that do not use <iostream>.
bsls_buildtarget:
Provide build-target information in object files.
bsls_byteorder:
Provide byte-order manipulation macros.
bsls_byteorderutil:
Provide byte-order swapping functions.
bsls_byteorderutil_impl: PRIVATE
Provide implementation of byte-order manipulation functions.
bsls_compilerfeatures:
Provide macros to identify compiler support for C++11 features.
bsls_consteval:
Provide macros related to compile-time evaluation.
bsls_cpp11: DEPRECATED
Provide macros for C++11 forward compatibility.
bsls_deprecate:
Provide machinery to deprecate interfaces on a per-version basis.
bsls_deprecatefeature:
Provide machinery to deprecate entities in C++ code.
bsls_exceptionutil:
Provide simplified exception constructs for non-exception builds.
bsls_fuzztest:
Provide macros for use in fuzz testing narrow-contract functions.
bsls_fuzztestpreconditionexception:
Provide an exception type for handling failed preconditions.
bsls_ident:
Provide macros for inserting SCM Ids into source files.
bsls_int64: DEPRECATED
Provide namespace for platform-dependent 64-bit integer types.
bsls_keyword:
Provide macros for forward language dialect compatibility.
bsls_libraryfeatures:
Provide macros to identify native standard library features.
bsls_linkcoercion:
Provide a way to force a link-time dependency into an object.
bsls_log:
Provide a namespace for low-level logging functions.
bsls_logseverity:
Enumerate a set of logging severity levels.
bsls_macroincrement:
Provide a macro to increment preprocessor numbers.
bsls_macrorepeat:
repeat a macro invocation with different numeric arguments.
bsls_nameof:
Provide a NameOf type for displaying template type at run-time.
bsls_nativestd: DEPRECATED
Define the namespace native_std as an alias for ::std.
bsls_nullptr:
Provide a distinct type for null pointer literals.
bsls_objectbuffer:
Provide raw buffer with size and alignment of user-specified type.
bsls_outputredirector:
Provide a means for test drivers to redirect and inspect output.
bsls_performancehint:
Provide performance hints for code optimization.
bsls_platform:
Provide compile-time support for platform/attribute identification.
bsls_platformutil: DEPRECATED
Provide consistent interface for platform-dependent functionality.
bsls_pointercastutil:
Provide function to cast between function and data pointers.
bsls_preconditions:
Provide macros for use in fuzz testing narrow contract functions.
bsls_protocoltest:
Provide classes and macros for testing abstract protocols.
bsls_review:
Provide assertion macros to safely identify contract violations.
bsls_review_macroreset: PRIVATE
Test driver utility to undefine all macros from bsls_review.h.
bsls_spinlock:
Provide a spin lock.
bsls_stackaddressutil:
Provide a utility for obtaining return addresses from the stack.
bsls_stopwatch:
Provide access to user, system, and wall times of current process.
bsls_systemclocktype:
Enumerate the set of system clock types.
bsls_systemtime:
Provide utilities to retrieve the system time.
bsls_timeinterval:
Provide a representation of a time interval.
bsls_timeutil:
Provide a platform-neutral functional interface to system clocks.
bsls_types:
Provide a consistent interface for platform-dependent types.
bsls_unspecifiedbool:
Provide a class supporting the unspecified bool idiom.
bsls_util:
Provide essential, low-level support for portable generic code.
Component Overview:
This section provides a brief introduction to some of the components in the bsls package. See the documentation in each component for full details.
bsls_alignedbuffer:
The bsls_alignedbuffer component provides a parameterized buffer type with a user-specified compile-time size and user-specified alignment. Typically, such a type is used in situations where it is desirable to allocate a block of properly-aligned raw memory from somewhere other than the heap, e.g., on the stack or within an aggregate object, including within a union. It is a convenient way to create a small heap from which one or more objects are allocated at run-time.
bsls_alignment:
The bsls_alignment component computes (at compile-time) platform-dependent alignment information. This component also provides a namespace for a suite of compile-time constants and pure procedures that yield platform-dependent alignment information for primitive and user-defined types, including the maximum alignment for any type and the smallest fundamental type requiring maximum alignment. These functions, used in conjunction, are especially useful for creating pools and allocators that rely on efficient alignment.
bsls_alignmentfromtype:
The bsls_alignmentfromtype component provides a meta-function that provides the alignment for a TYPE template parameter.
bsls_alignmentimp:
The bsls_alignmentimp component provides a suite of template meta-functions that can be used to compute (at compile-time) various platform-dependent alignment information.
bsls_alignmenttotype:
The bsls_alignmenttotype component provides a meta-function that defines a primitive type with an alignment matching a ALIGNMENT template parameter.
bsls_alignmentutil:
The bsls_alignmentutil component provides a suite of template meta-functions that can be used to compute (at compile-time) various platform-dependent alignment information.
bsls_annotation:
The bsls_annotation component provides a suite of preprocessor macros that define compiler-specific compile-time annotations.
bsls_assert:
The bsls_assert component provides a set of "assert-like" macros to implement a compile-time-selectable and run-time-configurable "defensive" or "safe" mode. It also provides a suite of "assert-failure handler" methods suitable for runtime loading into the macros, via also provided methods. Users may supply their own handler methods matching the proper signature. To allow the user more flexibility in changing handlers during program execution, this component also provides a scoped guard that allows safe, temporary changing of the failure handler in a limited scope.
bsls_asserttest:
The bsls_asserttest component provides a facility to test that BSLS_ASSERT_* macros are used as intended, in the appropriate build modes, and have the expected effects.
bsls_asserttestexception:
The bsls_asserttestexception component implements an exception class, bsls::AssertTestException, that provides a mechanism to convey context information from a failing assertion to a test handler.
bsls_atomic:
The bsls_atomic component provides classes with atomic operations for int, Int64, and pointer types.
bsls_atomicoperations:
The bsls_atomicoperations component provides a set of platform-independent atomic operations for fundamental data types, such as 32-bit and 64-bit integer and pointer.
bsls_blockgrowth:
The bsls_blockgrowth component enumerates the supported block growth strategies.
bsls_bsltestutil:
The bsls_bsltestutil component provides the standard printing macros used in BDE-style test drivers.
bsls_buildtarget:
The bsls_buildtarget component defines types and runtime constants for identifying the build target information (usually specified to the compiler via a set of BDE_BUILD_* macros). This is mostly useful for retrieving such information from a linkable or executable binary.
bsls_byteorder:
The bsls_byteorder component provides a set host-to-network and network-to-host byte-order manipulation macros.
bsls_compilerfeatures:
The bsls_compilerfeatures component provides a suite of preprocessor macros to identify compiler-specific support of language features that may not be available on all compilers in use across an organization.
bsls_deprecate:
The bsls_deprecate component provides a suite of macros to control (on a per-version, per-UOR basis) the deprecation of functions, user-defined types, and typedefs.
bsls_exceptionutil:
The bsls_exceptionutil component provides macros to replace try, throw and catch. These macros expand to normal exception constructs when exceptions are enabled and to reasonable alternatives (usually no-ops) when exceptions are disabled, allowing code that uses try, throw and catch constructs to compile even if exceptions are disabled using a compiler switch.
bsls_ident:
The bsls_ident component provides macros for inserting SCM (Source Control Management) Ids into source files.
bsls_macroincrement:
The bsls_macroincrement component provides a macro, BSLS_MACROINCREMENT(NUMBER), that produces the preprocessor number equal to the number succeeding the supplied argument.
bsls_nativestd:
The bsls_nativestd component defines a namespace alias, native_std, that serves as an alias for the std namespace.
bsls_nullptr:
The bsls_nullptr component provides a limited emulation of the C++11 type, std::nullptr_t, which can be used as a function parameter type to create an overload set where null pointer literals are handled specially.
bsls_objectbuffer:
The bsls_objectbuffer component provides a parameterized buffer type, bsls_ObjectBuffer, which is compile-time sized and aligned to hold a specified object type. Defining a bsls_ObjectBuffer<T> object does not cause the constructor for T to be called. Similarly, destroying the object buffer does not call the destructor for T. Typically, a bsls_ObjectBuffer is used in situations where efficient (e.g., stack-based) storage is required but where straightforward initialization or destruction of an object is not possible. It can also be used to create a union containing non-POD element types.
bsls_performancehint:
The bsls_performancehint component provides performance hints for the compiler or hardware.
bsls_platform:
The bsls_platform component defines preprocessor macros that identify and describe platform-specific attributes (at compile time). These attributes consist of the types and versions of operating system, processor(s), and compiler that comprise the platform.
bsls_protocoltest:
The bsls_protocoltest component provides classes and macros for testing abstract protocols.
bsls_stopwatch:
The bsls_stopwatch component implements a real-time (system clock) interval timer. A bsls_Stopwatch object can accumulate and return only one interval at a time, but may be started and stopped repeatedly without being reset, so the elapsed time "interval" accumulated by a single object may be from multiple, discontinuous segments of time. The non-negative total accumulated time (in seconds) is available as a double value.
bsls_systemclocktype:
The bsls_systemclocktype component provides a namespace for the enum type bsls::SystemClockType::Enum, which enumerates the set of system clock types. A bsls::SystemClockType is particularly important when providing time-out values to synchronization methods where those time-outs must be consistent in environments where the system clocks may be changed.
bsls_timeutil:
The bsls_timeutil component provides a set of platform-neutral pure procedures to access real-time system clock functionality. High-resolution time functions intended for interval-timing return an interval in nanoseconds (1 nsec = 1E-9 sec) as a 64-bit integer.
bsls_types:
The bsls_types component provides a namespace for a set of typedefs that provide a stable, portable interface to platform-dependent types.
bsls_unspecifiedbool:
The bsls_unspecifiedbool component provides a class template that can be used to manufacture an "unspecified boolean type" that is distinct for each class that instantiates it. Not for use outside the bsl package.
bsls_util:
The bsls_util component provides pure functions that supply essential low-level support for implementing portable generic facilities such as might be found in the C++ standard library.