/usr/include/boost/poly_collection/detail
NameSizeModeActions
allocator_adaptor.hpp92220644editdlrm
any_iterator.hpp23560644editdlrm
any_model.hpp60180644editdlrm
auto_iterator.hpp14740644editdlrm
base_model.hpp32940644editdlrm
callable_wrapper.hpp26730644editdlrm
callable_wrapper_iterator.hpp26100644editdlrm
functional.hpp52020644editdlrm
function_model.hpp34410644editdlrm
is_acceptable.hpp12350644editdlrm
is_constructible.hpp14590644editdlrm
is_equality_comparable.hpp8170644editdlrm
is_final.hpp14190644editdlrm
is_invocable.hpp22640644editdlrm
is_nothrow_eq_comparable.hpp10640644editdlrm
iterator_impl.hpp70500644editdlrm
iterator_traits.hpp30560644editdlrm
packed_segment.hpp99160644editdlrm
poly_collection.hpp342910644editdlrm
segment.hpp97310644editdlrm
segment_backend.hpp32340644editdlrm
segment_split.hpp44480644editdlrm
split_segment.hpp135240644editdlrm
stride_iterator.hpp44040644editdlrm
type_info_map.hpp73090644editdlrm
type_restitution.hpp55150644editdlrm
value_holder.hpp73880644editdlrm
Edit: /usr/include/boost/poly_collection/detail/iterator_traits.hpp (3056B)
/* 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) * * See http://www.boost.org/libs/poly_collection for library home page. */ #ifndef BOOST_POLY_COLLECTION_DETAIL_ITERATOR_TRAITS_HPP #define BOOST_POLY_COLLECTION_DETAIL_ITERATOR_TRAITS_HPP #if defined(_MSC_VER) #pragma once #endif #include #include namespace boost{ namespace poly_collection{ namespace common_impl{ template class poly_collection; } namespace detail{ /* (Internal) bunch of traits-grouped functions for const-preserving * interoperatibility between iterators and local iterators of a * poly_collection. */ template struct poly_collection_of /* to be specialized for iterator impls */ { using type=void; }; template struct model_of; template struct model_of> { using type=Model; }; template struct iterator_traits { using container_type=typename poly_collection_of::type; using is_const_iterator=typename std::is_const< typename std::remove_reference< typename std::iterator_traits::reference >::type >::type; using iterator=typename std::conditional< is_const_iterator::value, typename container_type::const_iterator, typename container_type::iterator >::type; using base_segment_info_iterator=typename std::conditional< is_const_iterator::value, typename container_type::const_base_segment_info_iterator, typename container_type::base_segment_info_iterator >::type; using local_base_iterator=typename std::conditional< is_const_iterator::value, typename container_type::const_local_base_iterator, typename container_type::local_base_iterator >::type; template using local_iterator=typename std::conditional< is_const_iterator::value, typename container_type::template const_local_iterator, typename container_type::template local_iterator >::type; static base_segment_info_iterator base_segment_info_iterator_from(iterator it)noexcept{return it.mapit;} static base_segment_info_iterator base_segment_info_iterator_from(local_base_iterator it)noexcept {return it.mapit;} static base_segment_info_iterator end_base_segment_info_iterator_from(iterator it)noexcept{return it.mapend;} static local_base_iterator local_base_iterator_from(iterator it)noexcept { return { it.mapit, model_of::type::nonconst_iterator(it.segpos) }; } static iterator iterator_from( local_base_iterator lbit,base_segment_info_iterator mapend)noexcept { return {lbit.mapit,mapend.base(),lbit.base()}; } }; } /* namespace poly_collection::detail */ } /* namespace poly_collection */ } /* namespace boost */ #endif