forked from boostorg/container
Fixes a small issue that prevented the use of iterators of containers of incomplete types. Added iterators of incomp-types to unit-tests.
This commit is contained in:
@@ -698,11 +698,16 @@ struct is_bidirectional_iterator<T, false>
|
||||
static const bool value = false;
|
||||
};
|
||||
|
||||
template<class IINodeType>
|
||||
struct iiterator_node_value_type {
|
||||
typedef typename IINodeType::value_type type;
|
||||
};
|
||||
|
||||
template<class IIterator>
|
||||
struct iiterator_types
|
||||
{
|
||||
typedef typename IIterator::value_type it_value_type;
|
||||
typedef typename it_value_type::value_type value_type;
|
||||
typedef typename iiterator_node_value_type<it_value_type>::type value_type;
|
||||
typedef typename std::iterator_traits<IIterator>::pointer it_pointer;
|
||||
typedef typename std::iterator_traits<IIterator>::difference_type difference_type;
|
||||
typedef typename ::boost::intrusive::pointer_traits<it_pointer>::
|
||||
|
||||
@@ -216,6 +216,11 @@ struct tree_node
|
||||
{ m_data = ::boost::move(v); }
|
||||
};
|
||||
|
||||
template <class T, class VoidPointer, boost::container::tree_type_enum tree_type_value, bool OptimizeSize>
|
||||
struct iiterator_node_value_type< tree_node<T, VoidPointer, tree_type_value, OptimizeSize> > {
|
||||
typedef T type;
|
||||
};
|
||||
|
||||
template<class Node, class Icont>
|
||||
class insert_equal_end_hint_functor
|
||||
{
|
||||
|
||||
@@ -81,6 +81,11 @@ struct list_node
|
||||
{ return this->m_data; }
|
||||
};
|
||||
|
||||
template <class T, class VoidPointer>
|
||||
struct iiterator_node_value_type< list_node<T,VoidPointer> > {
|
||||
typedef T type;
|
||||
};
|
||||
|
||||
template<class Allocator>
|
||||
struct intrusive_list_type
|
||||
{
|
||||
|
||||
@@ -87,6 +87,11 @@ struct slist_node
|
||||
{ return this->m_data; }
|
||||
};
|
||||
|
||||
template <class T, class VoidPointer>
|
||||
struct iiterator_node_value_type< slist_node<T,VoidPointer> > {
|
||||
typedef T type;
|
||||
};
|
||||
|
||||
template<class Allocator>
|
||||
struct intrusive_slist_type
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user