26 lines
533 B
C++
26 lines
533 B
C++
#pragma once
|
|
#include <memory>
|
|
#include <map>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#define ASSERT(x) if (!(x)) assert(false)
|
|
|
|
template<typename T>
|
|
using Ref = std::shared_ptr<T>;
|
|
|
|
template<typename T>
|
|
using Scope = std::unique_ptr<T>;
|
|
|
|
|
|
template<typename T, typename ... Args>
|
|
constexpr Ref<T> CreateRef(Args&& ... args)
|
|
{
|
|
return std::make_shared<T>(std::forward<Args>(args)...);
|
|
}
|
|
|
|
template<typename T, typename ... Args>
|
|
constexpr Scope<T> CreateScope(Args&& ... args)
|
|
{
|
|
return std::make_unique<T>(std::forward<Args>(args)...);
|
|
} |