[/ Copyright 2016-2017 Joaquin M Lopez Munoz. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ] [template poly_collection_synopsis[class_name template_header value_type] ``[template_header]`` class ``[class_name]`` { public: ``[link poly_collection.reference.polymorphic_containers.polymorphic_collections.types ['// types:]]`` using value_type=``[value_type]``; using allocator_type=Allocator; using size_type=std::size_t; using difference_type=std::ptrdiff_t; using reference=value_type&; using const_reference=const value_type&; using pointer=typename std::allocator_traits::pointer; using const_pointer=typename std::allocator_traits::const_pointer; using iterator=``/implementation-defined/``; using const_iterator=``/implementation-defined/``; using _local_base_iterator_=``/implementation-defined/``; using _const_local_base_iterator_=``/implementation-defined/``; template using _local_iterator_=``/implementation-defined/``; template using _const_local_iterator_=``/implementation-defined/``; class _const_base_segment_info_; class _base_segment_info_; template class _const_segment_info_; template class _segment_info_; using _base_segment_info_iterator_=``/implementation-defined/``; using _const_base_segment_info_iterator_=``/implementation-defined/``; class _const_segment_traversal_info_; class _segment_traversal_info_; ``[link poly_collection.reference.polymorphic_containers.polymorphic_collections.construct_copy_destroy ['// construct/destroy/copy:]]`` ``[class_name]``(); ``[class_name]``(const ``[class_name]``&); ``[class_name]``(``[class_name]``&&); explicit ``[class_name]``(const allocator_type& al); ``[class_name]``(const ``[class_name]``& x,const allocator_type& al); ``[class_name]``(``[class_name]``&& x,const allocator_type& al); template ``[link poly_collection.reference.polymorphic_containers.polymorphic_collections.construct_copy_destroy.range_construction [class_name]]``( InputIterator first,InputIterator last, const allocator_type& al=allocator_type{}); ``[class_name]``& operator=(const ``[class_name]``&); ``[class_name]``& operator=(``[class_name]``&&); allocator_type get_allocator()const noexcept; ``[link poly_collection.reference.polymorphic_containers.polymorphic_collections.type_registration ['// type registration:]]`` template void _register_types_(); bool _is_registered_(const std::type_info& info)const; template bool _is_registered_()const; ``[link poly_collection.reference.polymorphic_containers.polymorphic_collections.iterators ['// iterators:]]`` iterator _begin_()noexcept; iterator _end_()noexcept; const_iterator _begin_()const noexcept; const_iterator _end_()const noexcept; const_iterator _cbegin_()const noexcept; const_iterator _cend_()const noexcept; local_base_iterator _begin_(const std::type_info& info); local_base_iterator _end_(const std::type_info& info); const_local_base_iterator _begin_(const std::type_info& info)const; const_local_base_iterator _end_(const std::type_info& info)const; const_local_base_iterator _cbegin_(const std::type_info& info)const; const_local_base_iterator _cend_(const std::type_info& info)const; template local_iterator _begin_(); template local_iterator _end_(); template const_local_iterator _begin_()const; template const_local_iterator _end_()const; template const_local_iterator _cbegin_()const; template const_local_iterator _cend_()const; base_segment_info _segment_(const std::type_info& info); const_base_segment_info _segment_(const std::type_info& info)const; template segment_info _segment_(); template const_segment_info _segment_()const; segment_traversal_info _segment_traversal_()noexcept; const_segment_traversal_info _segment_traversal_()const noexcept; ``[link poly_collection.reference.polymorphic_containers.polymorphic_collections.capacity ['// capacity:]]`` bool empty()const noexcept; bool _empty_(const std::type_info& info)const; template bool _empty_()const; size_type size()const noexcept; size_type _size_(const std::type_info& info)const; template size_type _size_()const; size_type _max_size_(const std::type_info& info)const; template size_type _max_size_()const; size_type _capacity_(const std::type_info& info)const; template size_type _capacity_()const; void _reserve_(size_type n); void _reserve_(const std::type_info& info,size_type n); templatevoid _reserve_(size_type n); void _shrink_to_fit_(); void _shrink_to_fit_(const std::type_info& info); template void _shrink_to_fit_(); ``[link poly_collection.reference.polymorphic_containers.polymorphic_collections.modifiers ['// modifiers:]]`` template iterator _emplace_(Args&&... args); template iterator _emplace_hint_(const_iterator hint,Args&&... args); template auto _emplace_pos_(LocalIterator pos,Args&&... args); template iterator _insert_(T&& x); template auto _insert_hint_(CollectionIterator hint,T&& x); template void _insert_range_(InputIterator first,InputIterator last); template void _insert_hint_range_(CollectionIterator hint,InputIterator first,InputIterator last); template auto _erase_(CollectionIterator pos); template auto _erase_(CollectionIterator first,CollectionIterator last); void _clear_()noexcept; void _clear_(const std::type_info& info); template void _clear_(); void swap(``[class_name]``& x); }; ]