int __exchange_and_add_dispatch(int *__mem); template < typename _Tp > class new_allocator { }; namespace std { template < typename _CharT > struct char_traits; template < typename _Tp > class allocator:public new_allocator < _Tp > { }; template < typename _CharT, typename _Traits = char_traits < _CharT >, typename _Alloc = allocator < _CharT > >class basic_string; typedef basic_string < char >string; template < typename _CharT, typename _Traits, typename _Alloc > class basic_string { typedef _Alloc allocator_type; private:struct _Rep_base { int _M_refcount; }; struct _Rep:_Rep_base { void _M_dispose(const _Alloc & __a) { if (this != &_S_empty_rep()) { if (__exchange_and_add_dispatch (&this->_M_refcount)) { } } }}; struct _Alloc_hider:_Alloc { }; public: private:mutable _Alloc_hider _M_dataplus; _Rep *_M_rep() const { } static _Rep & _S_empty_rep() { } public: basic_string():_M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { } ~basic_string() { _M_rep()->_M_dispose(this->get_allocator()); } allocator_type get_allocator() const { }}; } namespace boost { template < class T > class intrusive_ptr { public:typedef T element_type; ~intrusive_ptr() { intrusive_ptr_release(px); } private: T * px; }; struct section_info; template < typename T > struct intrusive_base { friend void intrusive_ptr_release(T * ptr) { delete ptr; }}; struct id_category; struct id_placeholder; struct section_info:intrusive_base < section_info > { boost::intrusive_ptr < section_info > parent; std::string id_1_1; }; namespace { std::string normalize_id(std::string) { } } void add_id_to_section(std::string const &id) { std::string id_part = id; normalize_id(id); boost::intrusive_ptr < section_info > parent; }; }