* Big refactoring in order to reduce template and debug symbol bloat.

* Fixes #8698
* Implemented SCARY iterators

[SVN r85165]
This commit is contained in:
Ion Gaztañaga committed 2013-07-28 22:10:37 +00:00
1 parent 83f5f4b95b
commit fbd8e26461
146 files changed
+12087 -22796

No files matched your search

+3 -35
View File
@@ -1,6 +1,6 @@
/////////////////////////////////////////////////////////////////////////////
//
// (C) Copyright Ion Gaztanaga 2007-2012
// (C) Copyright Ion Gaztanaga 2007-2013
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
@@ -27,12 +27,6 @@ struct is_unordered
static const bool value = false;
};
template<class T>
struct has_const_overloads
{
static const bool value = true;
};
template< class Container >
void test_container( Container & c )
{
@@ -290,7 +284,7 @@ void test_common_unordered_and_associative_container(Container & c, Data & d)
}
template< class Container, class Data >
void test_associative_container_invariants(Container & c, Data & d, boost::intrusive::detail::true_type)
void test_associative_container_invariants(Container & c, Data & d)
{
typedef typename Container::const_iterator const_iterator;
for( typename Data::const_iterator di = d.begin(), de = d.end();
@@ -316,19 +310,6 @@ void test_associative_container_invariants(Container & c, Data & d, boost::intru
}
}
template< class Container, class Data >
void test_associative_container_invariants(Container &, Data &, boost::intrusive::detail::false_type)
{}
template< class Container, class Data >
void test_associative_container_invariants(Container & c, Data & d)
{
using namespace boost::intrusive;
typedef typename detail::remove_const<Container>::type Type;
typedef detail::bool_<has_const_overloads<Type>::value> enabler;
test_associative_container_invariants(c, d, enabler());
}
template< class Container, class Data >
void test_associative_container(Container & c, Data & d)
{
@@ -346,7 +327,7 @@ void test_associative_container(Container & c, Data & d)
}
template< class Container, class Data >
void test_unordered_associative_container_invariants(Container & c, Data & d, boost::intrusive::detail::true_type)
void test_unordered_associative_container_invariants(Container & c, Data & d)
{
typedef typename Container::size_type size_type;
typedef typename Container::const_iterator const_iterator;
@@ -380,19 +361,6 @@ void test_unordered_associative_container_invariants(Container & c, Data & d, bo
BOOST_TEST( total_objects == c.size() );
}
template< class Container, class Data >
void test_unordered_associative_container_invariants(Container &, Data &, boost::intrusive::detail::false_type)
{}
template< class Container, class Data >
void test_unordered_associative_container_invariants(Container & c, Data & d)
{
using namespace boost::intrusive;
typedef typename detail::remove_const<Container>::type Type;
typedef detail::bool_<has_const_overloads<Type>::value> enabler;
test_unordered_associative_container_invariants(c, d, enabler());
}
template< class Container, class Data >
void test_unordered_associative_container(Container & c, Data & d)
{