#pragma once #include "common.hpp" namespace big { class script_global { public: explicit script_global(std::size_t index); script_global at(std::ptrdiff_t index); script_global at(std::ptrdiff_t index, std::size_t size); template std::enable_if_t, T> as() { return static_cast(get()); } template std::enable_if_t, T> as() { return *static_cast>>(get()); } private: void* get(); std::size_t m_index; }; }