#pragma once #include namespace XCEngine { namespace Core { template using Ref = std::shared_ptr; template using UniqueRef = std::unique_ptr; template Ref MakeRef(Args&&... args) { return std::make_shared(std::forward(args)...); } template UniqueRef MakeUnique(Args&&... args) { return std::make_unique(std::forward(args)...); } } // namespace Core } // namespace XCEngine