Class meta_function_helper

Synopsis

#include <src/entt/meta/utility.hpp>

template<typename Type, typename Candidate>
class meta_function_helper

Description

Meta function helper.

Converts a function type to be associated with a reflected type into its meta function descriptor.

Template Parameters

Type - Reflected type to which the meta function is associated.

Candidate - The actual function to associate with the reflected type.

Source

Lines 95-112 in src/entt/meta/utility.hpp.

template<typename Type, typename Candidate>
class meta_function_helper {
    template<typename Ret, typename... Args, typename Class>
    static constexpr meta_function_descriptor<Type, Ret(Class:: *)(Args...) const> get_rid_of_noexcept(Ret(Class:: *)(Args...) const);

    template<typename Ret, typename... Args, typename Class>
    static constexpr meta_function_descriptor<Type, Ret(Class:: *)(Args...)> get_rid_of_noexcept(Ret(Class:: *)(Args...));

    template<typename Ret, typename... Args>
    static constexpr meta_function_descriptor<Type, Ret(*)(Args...)> get_rid_of_noexcept(Ret(*)(Args...));

    template<typename Class>
    static constexpr meta_function_descriptor<Class, decltype(&Class::operator())> get_rid_of_noexcept(Class);

public:
    /*! @brief The meta function descriptor of the given function. */
    using type = decltype(get_rid_of_noexcept(std::declval<Candidate>()));
};





Add Discussion

Log in to comment