INET Framework for OMNeT++/OMNEST
inet::DelayedInitializer< T > Class Template Reference

#include <DelayedInitializer.h>

Public Member Functions

 DelayedInitializer (const std::function< T *()> initializer)
 
 ~DelayedInitializer ()
 
const Toperator& () const
 

Private Attributes

Tt = nullptr
 
bool constructed
 
const std::function< T *()> initializer
 

Constructor & Destructor Documentation

◆ DelayedInitializer()

template<typename T >
inet::DelayedInitializer< T >::DelayedInitializer ( const std::function< T *()>  initializer)
inline

◆ ~DelayedInitializer()

template<typename T >
inet::DelayedInitializer< T >::~DelayedInitializer ( )
inline
27 { delete t; }

Member Function Documentation

◆ operator&()

template<typename T >
const T* inet::DelayedInitializer< T >::operator& ( ) const
inline
29  {
30  if (!constructed) {
31  fprintf(stderr, "Cannot dereference DelayedInitializer<%s> before it is completely constructed\n", typeid(t).name());
32  abort();
33  }
34  if (t == nullptr)
35  t = initializer();
36  return t;
37  }

Member Data Documentation

◆ constructed

template<typename T >
bool inet::DelayedInitializer< T >::constructed
private

◆ initializer

template<typename T >
const std::function<T *()> inet::DelayedInitializer< T >::initializer
private

◆ t

template<typename T >
T* inet::DelayedInitializer< T >::t = nullptr
mutableprivate

The documentation for this class was generated from the following file:
inet::DelayedInitializer::constructed
bool constructed
Definition: DelayedInitializer.h:22
inet::DelayedInitializer::t
T * t
Definition: DelayedInitializer.h:21
inet::DelayedInitializer::initializer
const std::function< T *()> initializer
Definition: DelayedInitializer.h:23