61 using STDFUNCTION = function<FUNCTION_SIGNATURE>;
66 using result_type =
typename STDFUNCTION::result_type;
85#if qCompilerAndStdLib_template_Requires_constraint_not_treated_constexpr_Buggy
86 template <
typename CTOR_FUNC_SIG, enable_if_t<is_convertible_v<remove_cvref_t<CTOR_FUNC_SIG>, function<FUNCTION_SIGNATURE>> and
87 not derived_from<remove_cvref_t<CTOR_FUNC_SIG>, Function<FUNCTION_SIGNATURE>>>* =
nullptr>
90 template <
typename CTOR_FUNC_SIG>
91 requires (is_convertible_v<remove_cvref_t<CTOR_FUNC_SIG>, function<FUNCTION_SIGNATURE>> and
94#if qCompilerAndStdLib_RequiresNotMatchInlineOutOfLineForTemplateClassBeingDefined_Buggy
95 : fFun_{forward<CTOR_FUNC_SIG> (f)}
96 , fOrdering_{fFun_ ==
nullptr ? OrderingType_{} : ++Private_::sFunctionObjectNextPtrID_}
98 Assert ((fOrdering_ == OrderingType_{}) == (fFun_ ==
nullptr));
113 nonvirtual
operator STDFUNCTION ()
const;
118 template <
typename... Args>
119 nonvirtual result_type operator() (Args... args)
const;
122 struct ThreeWayComparer;
127 nonvirtual strong_ordering operator<=> (
const Function& rhs)
const;
132 nonvirtual
bool operator== (
const Function& rhs)
const;
138 nonvirtual Characters::String
ToString ()
const;
152 using OrderingType_ = uint32_t;
153 OrderingType_ fOrdering_{};