#pragma once #include "property.hpp" #include "null.hpp" #include "bool.hpp" #include "string.hpp" #include "int32.hpp" #include "int64.hpp" #include "float.hpp" #include "double.hpp" template void Property::accept(Handler& h) { switch(flags) { case Flags::True: return h.handle(static_cast(*this)); case Flags::False: return h.handle(static_cast(*this)); case Flags::String: return h.handle(static_cast(*this)); case Flags::Int32: return h.handle(static_cast(*this)); case Flags::Int64: return h.handle(static_cast(*this)); case Flags::Float: return h.handle(static_cast(*this)); case Flags::Double: return h.handle(static_cast(*this)); default: return; } }