mirror of
https://github.com/zhenyan121/Cubed.git
synced 2026-08-09 02:07:04 +08:00
build: add entt library
This commit is contained in:
33
include/entt/resource/loader.hpp
Normal file
33
include/entt/resource/loader.hpp
Normal file
@@ -0,0 +1,33 @@
|
||||
#ifndef ENTT_RESOURCE_LOADER_HPP
|
||||
#define ENTT_RESOURCE_LOADER_HPP
|
||||
|
||||
#include "../stl/memory.hpp"
|
||||
#include "../stl/utility.hpp"
|
||||
#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 = stl::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 stl::make_shared<Type>(stl::forward<Args>(args)...);
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace entt
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user