34 Base::~Base() =
default;
39 Base& Base::operator= (
const Base& b)
41 VarBase::operator=(b);
46 std::ostream& operator<<(std::ostream& out, Base& v)
49 return out << *static_cast<VarBase*>(&v);
52 bool operator ==(Base& one,
const VarBase& two)
55 return *
static_cast<VarBase*
>(&one) == two;
58 bool operator ==(
const VarBase& one, Base& two)
61 return one == *
static_cast<VarBase*
>(&two);
64 bool operator ==(Base& one, Base& two)
68 return *
static_cast<VarBase*
>(&one) == *static_cast<VarBase*>(&two);
74 return VarBase::operator bool();
80 return VarBase::operator int();
83 Base::operator double()
86 return VarBase::operator double();
89 Base::operator std::string()
92 return VarBase::operator std::string();
98 return VarBase::is_bool();
104 return VarBase::is_int();
107 bool Base::is_double()
110 return VarBase::is_double();
113 bool Base::is_string()
116 return VarBase::is_string();
119 void Base::call_set_val()
123 VarBase::operator=(VarBase());