x::vipobj's first template parameter
specifies the type of the very important object.
x::vipobj has three optional template
parameters:
The type of the parameter passed to the callback, reporting the
value of the very important object. The default value is
const , and may be changed if
vipobj_type
&vipobj_type
can be type-converted to another class.
A bool value. Setting this parameter to
true catches any
x::exceptions thrown by a callback lambda,
which get logged. The default value of false
does not catch any exceptions, which propagate. Note that this
means that a thrown exception prevents any additional callbacks
from getting invoked, as a result of a very important object update.
The final template parameter specifies the type of the internal mutexes.