BDE 4.14.0 Production release
|
Provide definitions for terms used throughout BDE documentation.
This component documents common terminology that is used throughout the rest of BDE component documentation. The terminology is broken into the following sections:
operator==
).operator==
) and provide no primitive functionality aside from the standard value-semantic operations with manipulators and accessors to get and set the contained attribute fields.const
* thread-safe if its accessors may be invoked concurrently from different threads, but it is not safe to access or modify an object of that class in one thread while another thread modifies the same object.const
thread-safe unless documented otherwise.const
thread-safe is also minimally thread-safe.try
/catch
.friend
functions) can safely execute concurrently.const
thread-safe class that has no manipulators is fully thread-safe.std::lock_guard
), which acquires a lock (typically on a mutex) at construction, and releases that lock upon the guard's destruction.operator==
).throw
. For example, an exception may be injected by calling a method on a contained object (which, in turn, throws), or via a template parameter, virtual function call, or callback.bslma::Allocator
may throw a memory-allocation exception. Additionally, a function may test its input to verify that it has been called in-contract (e.g., using bsls_assert ) and may throw an exception in cases where it is called out-of-contract (functions with any undefined behavior, by definition, cannot provide the no-throw guarantee).bslalg::AutoArrayDestructor
, which is used to implement exception safety while moving elements within an array, restoring a valid state in case of an exception, or doing nothing once its release
method is invoked (after a valid state has been reestablished).operator==
), and provide no primitive functionality aside from the standard value-semantic operations with manipulators and accessors to get and set the contained attribute fields.friend
function) that can safely execute concurrently on a single object by multiple threads.operator==
) and provide no primitive functionality aside from the standard value-semantic operations with manipulators and accessors to get and set the contained attribute fields.struct
(or class
) serving as a namespace for a suite of C-style (static) functions. These types have no instance data members or instance methods.ostream
Printingbslx
Serialization (optional)operator==
, and the value of an object of that class is defined in terms of operator==
: Two objects of a type have the same value if and only if operator==
, when applied to these objects, returns true
. In addition, types that define a value (i.e., provide operator==
) must have the following properties:operator==
is commutative (i.e., A == B
if and only if B == A
).operator!=
is the inverse of operator==
(i.e., A != B
if and only if !(A == B)
).bsl::string
is a vocabulary type because it is used in the interface of many types to communicate the value of a character string.