mirror of
https://github.com/quizhizhe/LiteLoaderBDS-1.16.40.git
synced 2025-06-05 03:43:40 +00:00
34 lines
868 B
C++
34 lines
868 B
C++
#ifndef ENTT_RESOURCE_LOADER_HPP
|
|
#define ENTT_RESOURCE_LOADER_HPP
|
|
|
|
#include <memory>
|
|
#include <utility>
|
|
#include "fwd.hpp"
|
|
|
|
namespace entt {
|
|
|
|
/**
|
|
* @brief Transparent loader for shared resources.
|
|
* @tparam Type Type of resources created by the loader.
|
|
*/
|
|
template<typename Type>
|
|
struct resource_loader {
|
|
/*! @brief Result type. */
|
|
using result_type = std::shared_ptr<Type>;
|
|
|
|
/**
|
|
* @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<typename... Args>
|
|
result_type operator()(Args &&...args) const {
|
|
return std::make_shared<Type>(std::forward<Args>(args)...);
|
|
}
|
|
};
|
|
|
|
} // namespace entt
|
|
|
|
#endif
|