#ifndef ENTT_META_POINTER_HPP #define ENTT_META_POINTER_HPP #include #include #include "type_traits.hpp" namespace entt { /** * @brief Makes plain pointers pointer-like types for the meta system. * @tparam Type Element type. */ template struct is_meta_pointer_like : std::true_type {}; /** * @brief Partial specialization used to reject pointers to arrays. * @tparam Type Type of elements of the array. * @tparam N Number of elements of the array. */ template struct is_meta_pointer_like : std::false_type {}; /** * @brief Makes `std::shared_ptr`s of any type pointer-like types for the meta * system. * @tparam Type Element type. */ template struct is_meta_pointer_like> : std::true_type {}; /** * @brief Makes `std::unique_ptr`s of any type pointer-like types for the meta * system. * @tparam Type Element type. * @tparam Args Other arguments. */ template struct is_meta_pointer_like> : std::true_type {}; } #endif