BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bdlat::NullableValueUtil Struct Reference

#include <bdlat_nullablevalueutil.h>

Static Public Member Functions

template<class TYPE , class ACCESSOR >
static int accessValueByCategory (const TYPE &object, ACCESSOR &accessor)
 
template<class TYPE , class MANIPULATOR >
static int manipulateValueByCategory (TYPE *object, MANIPULATOR &manipulator)
 

Detailed Description

This struct provides a namespace for a suite of function templates providing non-primitive operations on "nullable value" types.

Member Function Documentation

◆ accessValueByCategory()

template<class TYPE , class ACCESSOR >
int bdlat::NullableValueUtil::accessValueByCategory ( const TYPE &  object,
ACCESSOR &  accessor 
)
inlinestatic

Invoke the specified accessor on the non-modifiable value stored in the specified "nullable" object and on a prvalue of the category tag type for the dynamic category of the value. See {bdlat_typecategory |Category Tags and Enumerators} for documentation about category tags. Return the value from the invocation of accessor. The accessor must be an accessor functor. See {bdlat_typecategory |ACCESSOR Functors} for the requirements on accessor. The behavior is undefined if object contains a null value.

◆ manipulateValueByCategory()

template<class TYPE , class MANIPULATOR >
int bdlat::NullableValueUtil::manipulateValueByCategory ( TYPE *  object,
MANIPULATOR &  manipulator 
)
inlinestatic

Invoke the specified manipulator on the address of the value stored in the specified "nullable" object and on a prvalue of the category tag type for the dynamic category of the value. See {bdlat_typecategory |Category Tags and Enumerators} for documentation about category tags. Return the value from the invocation of manipulator. The manipulator must be a manipulator functor. See {bdlat_typecategory |MANIPULATOR Functors} for the requirements on manipulator. The behavior is undefined if object contains a null value.


The documentation for this struct was generated from the following file: