/* @file Integer.hpp * * author: Roland Conybeare, Aug 2025 */ #include "Number.hpp" namespace xo { namespace obj { class Integer : public Number { public: using int_type = long long; public: Integer() = default; explicit Integer(int_type x); /** create instance holding integer value @p x **/ static gp make(int_type x); /** downcast from @p x iff x is actually an Integer. Otherwise nullptr **/ static gp from(gp x); int_type value() const { return value_; } // inherited from Object.. virtual std::size_t _shallow_size() const override; virtual Object * _shallow_copy() const override; virtual std::size_t _forward_children() override; private: int_type value_ = 0; }; } /*namespace obj*/ } /*namespace xo*/ /* end Integer.hpp */