25 lines
621 B
C++
25 lines
621 B
C++
#ifndef REF_SCOPE_HPP
|
|
#define REF_SCOPE_HPP
|
|
|
|
#include <memory>
|
|
|
|
namespace OpenEngine {
|
|
template<typename T>
|
|
using Scope = std::unique_ptr<T>;
|
|
template<typename T, typename ... Args>
|
|
constexpr Scope<T> CreateScope(Args&& ... args)
|
|
{
|
|
return std::make_unique<T>(std::forward<Args>(args)...);
|
|
}
|
|
|
|
template<typename T>
|
|
using Ref = std::shared_ptr<T>;
|
|
template<typename T, typename ... Args>
|
|
constexpr Ref<T> CreateRef(Args&& ... args)
|
|
{
|
|
return std::make_shared<T>(std::forward<Args>(args)...);
|
|
}
|
|
}
|
|
|
|
#endif // REF_SCOPE_HPP
|