stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker > Class Template Reference

this is a structure allowing for automatically verifying that the item has been initialized or not. The chckitm_reset() function allows to set it back to "not initialized" state. More...

#include <state-observation/tools/definitions.hpp>

Collaboration diagram for stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >:

Public Member Functions

 CheckedItem (bool initialize=true)
 The parameter initialize sets whether the isSet() parameter is initialized to false. More...
 
 CheckedItem (const T &)
 
 CheckedItem (const CheckedItem &)
 
virtual ~CheckedItem ()
 
CheckedItemoperator= (const CheckedItem &)
 
T & operator= (const T &)
 
 operator T () const
 
 operator const T & () const
 
const T & chckitm_getValue () const
 
T & operator() ()
 
const T & operator() () const
 
T & getRefUnchecked ()
 
const T & getRefUnchecked () const
 
bool isSet () const
 
void reset ()
 
void set (bool value)
 set the value of the initialization check boolean More...
 
void setAssertMessage (std::string s)
 
void setExceptionPtr (std::exception *e)
 
T & set ()
 

Protected Types

typedef DebugItem< bool, detail::defaultTrue, do_check_IsSet
 
typedef DebugItem< const char *, detail::defaultErrorMSG, do_assert_AssertMsg
 
typedef DebugItem< const std::exception *, detail::defaultExceptionAddr, do_exception_ExceptionPtr
 

Protected Member Functions

bool chckitm_check_ () const
 

Protected Attributes

IsSet isSet_
 
AssertMsg assertMsg_
 
ExceptionPtr exceptionPtr_
 
v_
 this can throw(std::exception) More...
 

Static Protected Attributes

static const bool do_check_ = !lazy || isDebug
 
static const bool do_assert_ = do_check_ && assertion
 
static const bool do_exception_ = do_check_ && !assertion
 

Detailed Description

template<typename T, bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
class stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >

this is a structure allowing for automatically verifying that the item has been initialized or not. The chckitm_reset() function allows to set it back to "not initialized" state.

Template Parameters
Tis the contained type
lazymeans that the "set" value is true all the time if NDEBUG is defined
alwaysCheckmeans that the check is always performed and throws exception if it fails. Otherwise, the check is performed only for debug warning, this has no effect if lazy is set to true
assertionmeans that an assertion will be introduced for the check.
eigenAlignedNewshould be set to true if any alignment is required for the new operator (see eigen documentation)
additionalCheckerdefines a check function that is called in addition to the initialization check

Member Typedef Documentation

◆ AssertMsg

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
typedef DebugItem<const char *, detail::defaultErrorMSG, do_assert_> stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::AssertMsg
protected

◆ ExceptionPtr

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
typedef DebugItem<const std::exception *, detail::defaultExceptionAddr, do_exception_> stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::ExceptionPtr
protected

◆ IsSet

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
typedef DebugItem<bool, detail::defaultTrue, do_check_> stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::IsSet
protected

Constructor & Destructor Documentation

◆ CheckedItem() [1/3]

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::CheckedItem ( bool  initialize = true)

The parameter initialize sets whether the isSet() parameter is initialized to false.

◆ CheckedItem() [2/3]

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::CheckedItem ( const T &  )
explicit

◆ CheckedItem() [3/3]

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::CheckedItem ( const CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker > &  )

◆ ~CheckedItem()

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
virtual stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::~CheckedItem ( )
inlinevirtual

Member Function Documentation

◆ chckitm_check_()

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
bool stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::chckitm_check_ ( ) const
protected

◆ chckitm_getValue()

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
const T& stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::chckitm_getValue ( ) const
inline

◆ getRefUnchecked() [1/2]

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
T& stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::getRefUnchecked ( )
inline

◆ getRefUnchecked() [2/2]

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
const T& stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::getRefUnchecked ( ) const
inline

◆ isSet()

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
bool stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::isSet ( ) const
inline

◆ operator const T &()

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::operator const T & ( ) const
inline

◆ operator T()

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::operator T ( ) const
inline

◆ operator()() [1/2]

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
T& stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::operator() ( )
inline

◆ operator()() [2/2]

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
const T& stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::operator() ( ) const
inline

◆ operator=() [1/2]

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
CheckedItem& stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::operator= ( const CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker > &  )
inline

◆ operator=() [2/2]

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
T& stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::operator= ( const T &  )
inline

◆ reset()

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
void stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::reset ( )
inline

◆ set() [1/2]

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
T& stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::set ( )
inline

allows to set the initialization boolean to true and give a reference to the object with the same instruction should be used to initialize the object without using the assignment operator

◆ set() [2/2]

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
void stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::set ( bool  value)
inline

set the value of the initialization check boolean

◆ setAssertMessage()

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
void stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::setAssertMessage ( std::string  s)

◆ setExceptionPtr()

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
void stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::setExceptionPtr ( std::exception *  e)

Member Data Documentation

◆ assertMsg_

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
AssertMsg stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::assertMsg_
protected

◆ do_assert_

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
const bool stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::do_assert_ = do_check_ && assertion
staticprotected

◆ do_check_

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
const bool stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::do_check_ = !lazy || isDebug
staticprotected

◆ do_exception_

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
const bool stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::do_exception_ = do_check_ && !assertion
staticprotected

◆ exceptionPtr_

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
ExceptionPtr stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::exceptionPtr_
protected

◆ isSet_

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
IsSet stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::isSet_
protected

◆ v_

template<typename T , bool lazy = false, bool alwaysCheck = false, bool assertion = true, bool eigenAlignedNew = false, typename additionalChecker = EmptyChecker>
T stateObservation::CheckedItem< T, lazy, alwaysCheck, assertion, eigenAlignedNew, additionalChecker >::v_
protected

this can throw(std::exception)


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