Quick Links: |
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 | |
Component bsls_alignmentimp | |
Provide implementation meta-functions for alignment computation. | |
Component bsls_alignmenttotype | |
Provide a meta-function mapping an | |
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 | |
Component bsls_assertimputil | |
Provide utilities to implement | |
Component bsls_asserttest | |
Provide a test facility for assertion macros. | |
Component bsls_asserttest_macroreset: PRIVATE | |
Undefine macros related to | |
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 | |
Component bsls_atomicoperations_all_all_gccintrinsics: PRIVATE | |
Implement atomic operations using gcc | |
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 | |
Component bsls_bslexceptionutil | |
Provide functions for use in | |
Component bsls_bsllock | |
Provide a platform-independent mutex for use below | |
Component bsls_bsllockimpl_pthread: PRIVATE | |
Provide a mutex for use below | |
Component bsls_bsllockimpl_win32: PRIVATE | |
Provide a mutex for use below | |
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 | |
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 | |
Component bsls_nativestd: DEPRECATED | |
Define the namespace | |
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 | |
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 | |
Component bsls_util | |
Provide essential, low-level support for portable generic code. |
bsls_alignedbuffer
bsls_alignment
bsls_alignmentfromtype
bsls_alignmentimp
bsls_alignmenttotype
bsls_alignmentutil
bsls_annotation
bsls_assert
bsls_asserttest
bsls_asserttestexception
bsls_atomic
bsls_atomicoperations
bsls_blockgrowth
bsls_bsltestutil
bsls_buildtarget
bsls_byteorder
bsls_compilerfeatures
bsls_deprecate
bsls_exceptionutil
bsls_ident
bsls_macroincrement
bsls_nativestd
bsls_nullptr
bsls_objectbuffer
bsls_performancehint
bsls_platform
bsls_protocoltest
bsls_stopwatch
bsls_systemclocktype
bsls_timeutil
bsls_types
bsls_unspecifiedbool
bsls_util
bsl
. bsls
package provides a variety of system utilities for use by the bsl
library. These utilities include: 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
bsls_alignedbuffer
: bsls_alignment
: bsls_alignmentfromtype
: TYPE
to its alignment.bsls_alignmentimp
: bsls_alignmenttotype
: ALIGNMENT
to a primitive type.bsls_alignmentutil
: bsls_annotation
: DEPRECATED bsls_assert
: bsls_assertimputil
: bsls_assert
and bsls_review
.bsls_asserttest
: bsls_asserttestexception
: bsls_atomic
: bsls_atomicoperations
: bsls_atomicoperations_all_all_clangintrinsics
: PRIVATE __c11_atomic_*
intrinsicsbsls_atomicoperations_all_all_gccintrinsics
: PRIVATE __atomic_*
intrinsics.bsls_atomicoperations_arm_all_gcc
: PRIVATE bsls_atomicoperations_default
: PRIVATE bsls_atomicoperations_powerpc32_aix_xlc
: PRIVATE bsls_atomicoperations_powerpc64_aix_xlc
: PRIVATE bsls_atomicoperations_powerpc_aix_xlc_default
: PRIVATE bsls_atomicoperations_powerpc_all_gcc
: PRIVATE bsls_atomicoperations_sparc32_sun_cc
: PRIVATE bsls_atomicoperations_sparc64_sun_cc
: PRIVATE bsls_atomicoperations_sparc_sun_cc_default
: 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_blockgrowth
: bsls_bsldeprecationinformation
: bsl
deprecations by release version.bsls_bslexceptionutil
: bsl
that throw standard exceptions.bsls_bsllock
: bslmt
.bsls_bsllockimpl_pthread
: PRIVATE bslmt
.bsls_bsllockimpl_win32
: PRIVATE bslmt
for windows platform.bsls_bslonce
: bsls_bslsourcenameparserutil
: bsls_bsltestutil
: bsl
that do not use <iostream>.bsls_buildtarget
: bsls_byteorder
: bsls_byteorderutil
: bsls_byteorderutil_impl
: PRIVATE bsls_compilerfeatures
: bsls_consteval
: bsls_cpp11
: DEPRECATED bsls_deprecate
: bsls_deprecatefeature
: bsls_exceptionutil
: bsls_fuzztest
: bsls_fuzztestpreconditionexception
: bsls_ident
: bsls_int64
: DEPRECATED bsls_keyword
: bsls_libraryfeatures
: bsls_linkcoercion
: bsls_log
: bsls_logseverity
: bsls_macroincrement
: bsls_macrorepeat
: bsls_nameof
: NameOf
type for displaying template type at run-time.bsls_nativestd
: DEPRECATED native_std
as an alias for ::std
.bsls_nullptr
: bsls_objectbuffer
: bsls_outputredirector
: bsls_performancehint
: bsls_platform
: bsls_platformutil
: DEPRECATED bsls_pointercastutil
: bsls_preconditions
: bsls_protocoltest
: bsls_review
: bsls_spinlock
: bsls_stackaddressutil
: bsls_stopwatch
: bsls_systemclocktype
: bsls_systemtime
: bsls_timeinterval
: bsls_timeutil
: bsls_types
: bsls_unspecifiedbool
: unspecified bool
idiom.bsls_util
: bsls
package. See the documentation in each component for full details. 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
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
component provides a meta-function that provides the alignment for a TYPE
template parameter. 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
component provides a meta-function that defines a primitive type with an alignment matching a ALIGNMENT
template parameter. 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
component provides a suite of preprocessor macros that define compiler-specific compile-time annotations. 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
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
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
component provides classes with atomic operations for int
, Int64
, and pointer types. 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
component enumerates the supported block growth strategies. bsls_bsltestutil
component provides the standard printing macros used in BDE-style test drivers. 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
component provides a set host-to-network and network-to-host byte-order manipulation macros. 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
component provides a suite of macros to control (on a per-version, per-UOR basis) the deprecation of functions, user-defined types, and typedef
s. 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
component provides macros for inserting SCM (Source Control Management) Ids into source files. bsls_macroincrement
component provides a macro, BSLS_MACROINCREMENT(NUMBER)
, that produces the preprocessor number equal to the number succeeding the supplied argument. bsls_nativestd
component defines a namespace alias, native_std
, that serves as an alias for the std
namespace. 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
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
component provides performance hints for the compiler or hardware. 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
component provides classes and macros for testing abstract protocols. 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
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
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
component provides a namespace for a set of typedef
s that provide a stable, portable interface to platform-dependent types. 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
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.