| 621 | //! Like Visit but passing function(s) wrapped in std::function |
| 622 | template<typename RegistryTraits> |
| 623 | void VisitWithFunctions(const VisitorFunctions<RegistryTraits> &visitors, |
| 624 | const GroupItem<RegistryTraits> *pTopItem, |
| 625 | const GroupItem<RegistryTraits> *pRegistry = {}, |
| 626 | typename RegistryTraits::ComputedItemContextType &computedItemContext = |
| 627 | RegistryTraits::ComputedItemContextType::Instance) |
| 628 | { |
| 629 | static_assert(AcceptableTraits_v<RegistryTraits>); |
| 630 | Variant::Visit([&](auto &&visitor){ |
| 631 | Visit(visitor, pTopItem, pRegistry, computedItemContext); |
| 632 | }, visitors); |
| 633 | } |
| 634 | |
| 635 | // Typically a static object. Constructor initializes certain preferences |
| 636 | // if they are not present. These preferences determine an extrinsic |