8#include <QtCore/qtconfigmacros.h>
9#include <QtCore/qtpreprocessorsupport.h>
12#pragma qt_class(QOverload)
20auto qOverload(T functionPointer);
22auto qConstOverload(T memberFunctionPointer);
24auto qNonConstOverload(T memberFunctionPointer);
26template <
typename... Args>
27struct QNonConstOverload
29 template <
typename R,
typename T>
30 constexpr auto operator()(R (T::*ptr)(Args...))
const noexcept ->
decltype(ptr)
33 template <
typename R,
typename T>
34 static constexpr auto of(R (T::*ptr)(Args...))
noexcept ->
decltype(ptr)
38template <
typename... Args>
41 template <
typename R,
typename T>
42 constexpr auto operator()(R (T::*ptr)(Args...)
const)
const noexcept ->
decltype(ptr)
45 template <
typename R,
typename T>
46 static constexpr auto of(R (T::*ptr)(Args...)
const)
noexcept ->
decltype(ptr)
50template <
typename... Args>
59 constexpr auto operator()(R (*ptr)(Args...))
const noexcept ->
decltype(ptr)
63 static constexpr auto of(R (*ptr)(Args...))
noexcept ->
decltype(ptr)
constexpr QOverload< Args... > qOverload
constexpr QConstOverload< Args... > qConstOverload
constexpr QNonConstOverload< Args... > qNonConstOverload
constexpr auto operator()(R(T::*ptr)(Args...) const) const noexcept -> decltype(ptr)
static constexpr auto of(R(T::*ptr)(Args...) const) noexcept -> decltype(ptr)
static constexpr auto of(R(*ptr)(Args...)) noexcept -> decltype(ptr)
constexpr auto operator()(R(*ptr)(Args...)) const noexcept -> decltype(ptr)