template<typename T>
class MaybeOptionalPtr< T >
The MaybeOptionalPtr class is a wrapper for a boost::variant over a T* or a a boost::optional<T>*. It provides a getter returning a boost::optional<const T&> and a setter. The setter throws an error if the underlying value is invalid (either a nullptr or an empty optional).
The main purpose of this class is to avoid a large number of overloaded ctors for CTiglRelativelyPositionedComponent: Some derived classes of CTiglRelativelyPositionedComponent can have either a mandatory parentUID or an optional parentUID as well as either a mandatory transformation or an optional transformation.