"this POD needs a custom constructor" ... what is a POD? POD does not contain complex objects such as lines and maps. POD means plain old data like paired and char arrays.
, , , - . std::map, std::vector std::string , . boost::shared_ptr NULL. attrib - , -, . NodeType , . ? , , - , undefined.