43    : 
public std::enable_shared_from_this<node>
 
   46    typedef std::shared_ptr<node>   pointer_t;
 
   47    typedef std::map<std::string, pointer_t>
 
   49    typedef std::weak_ptr<node>     weak_pointer_t;
 
   50    typedef std::map<std::string, std::string>
 
   52    typedef std::vector<pointer_t>  vector_t;
 
   53    typedef std::deque<pointer_t>   deque_t;
 
   55                                    node(std::string 
const & name);
 
   57    std::string 
const &             tag_name() 
const;
 
   58    std::string                     text(
bool trim = 
true) 
const;
 
   59    void                            set_text(std::string 
const & text);
 
   60    void                            append_text(std::string 
const & text);
 
   61    attribute_map_t                 all_attributes() 
const;
 
   62    std::string                     attribute(std::string 
const & name) 
const;
 
   63    void                            set_attribute(std::string 
const & name, std::string 
const & value);
 
   64    void                            append_child(pointer_t n);
 
   66    pointer_t                       root() 
const;
 
   67    pointer_t                       parent() 
const;
 
   68    pointer_t                       first_child() 
const;
 
   69    pointer_t                       last_child() 
const;
 
   70    pointer_t                       next() 
const;
 
   71    pointer_t                       previous() 
const;
 
   74    std::string 
const               f_name;
 
   75    std::string                     f_text = std::string();
 
   76    attribute_map_t                 f_attributes = attribute_map_t();
 
   78    pointer_t                       f_next = pointer_t();
 
   79    weak_pointer_t                  f_previous = weak_pointer_t();
 
   81    pointer_t                       f_child = pointer_t();
 
   82    weak_pointer_t                  f_parent = weak_pointer_t();