Use explicit instantiation for iterators defined outside the class in order to detect compilation errors.

[SVN r82815]
This commit is contained in:
Ion Gaztañaga
2013-02-11 11:31:59 +00:00
parent c0cb9ae2c7
commit f56ec3886b
5 changed files with 36 additions and 0 deletions

View File

@@ -116,6 +116,9 @@ template class flat_multiset
, std::allocator<test::movable_and_copyable_int> , std::allocator<test::movable_and_copyable_int>
>; >;
//As flat container iterators are typedefs for vector::[const_]iterator,
//no need to explicit instantiate them
}} //boost::container }} //boost::container

View File

@@ -32,6 +32,15 @@ template class boost::container::list<test::movable_and_copyable_int,
template class boost::container::list<test::movable_and_copyable_int, template class boost::container::list<test::movable_and_copyable_int,
std::allocator<test::movable_and_copyable_int> >; std::allocator<test::movable_and_copyable_int> >;
namespace container_detail {
template class list_const_iterator
<int, intrusive_list_type< std::allocator<int> >::container_type::iterator >;
template class list_iterator
<int, intrusive_list_type< std::allocator<int> >::container_type::iterator>;
}
}} }}
typedef list<int> MyList; typedef list<int> MyList;

View File

@@ -30,6 +30,16 @@ template class boost::container::slist<test::movable_and_copyable_int,
template class boost::container::slist<test::movable_and_copyable_int, template class boost::container::slist<test::movable_and_copyable_int,
std::allocator<test::movable_and_copyable_int> >; std::allocator<test::movable_and_copyable_int> >;
namespace container_detail {
template class slist_const_iterator
<int, intrusive_slist_type< std::allocator<int> >::container_type::iterator >;
template class slist_iterator
<int, intrusive_slist_type< std::allocator<int> >::container_type::iterator>;
}
}} }}
typedef slist<int> MyList; typedef slist<int> MyList;

View File

@@ -39,6 +39,13 @@ template class stable_vector<test::movable_and_copyable_int,
template class stable_vector<test::movable_and_copyable_int, template class stable_vector<test::movable_and_copyable_int,
std::allocator<test::movable_and_copyable_int> >; std::allocator<test::movable_and_copyable_int> >;
namespace stable_vector_detail{
template class iterator< int, int &, int *>;
template class iterator< int, const int &, const int *>;
}
}} }}
class recursive_vector class recursive_vector

View File

@@ -39,6 +39,13 @@ template class boost::container::vector<test::movable_and_copyable_int,
template class boost::container::vector<test::movable_and_copyable_int, template class boost::container::vector<test::movable_and_copyable_int,
std::allocator<test::movable_and_copyable_int> >; std::allocator<test::movable_and_copyable_int> >;
namespace container_detail {
template class vector_const_iterator<int*>;
template class vector_iterator<int*>;
}
}} }}
int test_expand_bwd() int test_expand_bwd()