24#ifndef quantlib_lazy_object_h
25#define quantlib_lazy_object_h
159 forwardsAllNotifications_ =
false;
176 #ifdef QL_FASTER_LAZY_OBJECTS
190 #ifdef QL_THROW_IN_CYCLES
191 QL_FAIL(
"recursive notification loop detected; you probably created an object cycle");
Per-session settings for the LazyObject class.
bool forwardsAllNotifications_
void alwaysForwardNotifications()
void forwardFirstNotificationOnly()
bool forwardsAllNotifications() const
returns the current default
UpdateChecker(LazyObject *subject)
Framework for calculation on demand and result caching.
virtual void calculate() const
void alwaysForwardNotifications()
void forwardFirstNotificationOnly()
virtual void performCalculations() const =0
bool isCalculated() const
~LazyObject() override=default
Object that notifies its changes to a set of observers.
Object that gets notified when a given observable changes.
Basic support for the singleton pattern.
#define QL_FAIL(message)
throw an error (possibly with file and line information)
observer/observable pattern
Maps shared_ptr to either the boost or std implementation.