#ifndef ENTT_RESOURCE_LOADER_HPP #define ENTT_RESOURCE_LOADER_HPP #include #include #include "fwd.hpp" namespace entt { /** * @brief Transparent loader for shared resources. * @tparam Type Type of resources created by the loader. */ template struct resource_loader { /*! @brief Result type. */ using result_type = std::shared_ptr; /** * @brief Constructs a shared pointer to a resource from its arguments. * @tparam Args Types of arguments to use to construct the resource. * @param args Parameters to use to construct the resource. * @return A shared pointer to a resource of the given type. */ template result_type operator()(Args &&...args) const { return std::make_shared(std::forward(args)...); } }; } // namespace entt #endif