template<class... T>
static constexpr bool is-invocable-using = see below;
template<class F>
static constexpr bool is-convertible-from-specialization = see below;
template<class F> function_ref(F* f) noexcept;
template<class F> constexpr function_ref(F&& f) noexcept;
template<auto c, class F> constexpr function_ref(constant_wrapper<c, F> f) noexcept;
template<auto c, class F, class U>
constexpr function_ref(constant_wrapper<c, F> f, U&& obj) noexcept;
template<auto c, class F>
constexpr function_ref(constant_wrapper<c, F> f, cv T* obj) noexcept;
template<class T> function_ref& operator=(T) = delete;