#include "json.h" #include #include namespace TehJSON { template T& JSON::get() { if(!isLeaf) throw std::runtime_error("Node is not a leaf!"); return *static_cast(data.get()); } template void JSON::set(T value) { if(children.size() != 0) throw std::runtime_error("Node is not a leaf (has children already)!"); isLeaf = true; dataSerializer = JSON::serializeData; data = std::make_shared(value); } }