friend Ret tag_invoke()

in include/unifex/any_unique.hpp [193:209]


    friend Ret tag_invoke(base_cpo_t<CPO> cpo, replace_this_t<Args, Derived>... args)
        noexcept(NoExcept) {
      using cpo_t = base_cpo_t<CPO>;
      static_assert(
          !NoExcept || noexcept(extract_this<Args...>{}((decltype(args) &&) args...)));
      auto&& t = extract_this<Args...>{}((decltype(args) &&) args...);
      static_assert(!NoExcept || noexcept(get_object_address(t)));
      void* objPtr = get_object_address(t);
      static_assert(!NoExcept || noexcept(get_vtable(t)->template get<CPO>()));
      auto* fnPtr = get_vtable(t)->template get<CPO>();
      static_assert(!NoExcept || noexcept(fnPtr(
          (cpo_t&&) cpo,
          replace_this<Args>::get((decltype(args) &&) args, objPtr)...)));
      return fnPtr(
          (cpo_t&&) cpo,
          replace_this<Args>::get((decltype(args) &&) args, objPtr)...);
    }