12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- //////////////////////////////////////////////////////////////////////////////
- //
- // (C) Copyright Ion Gaztanaga 2015-2015. 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/container for documentation.
- //
- //////////////////////////////////////////////////////////////////////////////
- #include <boost/container/flat_map.hpp>
- #include <boost/container/allocator.hpp>
- #include "movable_int.hpp"
- #include "dummy_test_allocator.hpp"
- #include <boost/container/stable_vector.hpp>
- #include <boost/container/small_vector.hpp>
- #include <boost/container/deque.hpp>
- #include <boost/container/static_vector.hpp>
- struct empty
- {
- friend bool operator == (const empty &, const empty &){ return true; }
- friend bool operator < (const empty &, const empty &){ return true; }
- };
- template class ::boost::container::flat_map<empty, empty>;
- template class ::boost::container::flat_multimap<empty, empty>;
- volatile ::boost::container::flat_map<empty, empty> dummy;
- volatile ::boost::container::flat_multimap<empty, empty> dummy2;
- namespace boost {
- namespace container {
- //Explicit instantiation to detect compilation errors
- //flat_map
- typedef std::pair<test::movable_and_copyable_int, test::movable_and_copyable_int> test_pair_t;
- template class flat_map
- < test::movable_and_copyable_int
- , test::movable_and_copyable_int
- , std::less<test::movable_and_copyable_int>
- , small_vector< test_pair_t, 10, std::allocator< test_pair_t > >
- >;
- //flat_multimap
- template class flat_multimap
- < test::movable_and_copyable_int
- , test::movable_and_copyable_int
- , std::less<test::movable_and_copyable_int>
- , stable_vector< test_pair_t, allocator< test_pair_t > >
- >;
- template class flat_multimap
- < test::movable_and_copyable_int
- , test::movable_and_copyable_int
- , std::less<test::movable_and_copyable_int>
- , deque<test_pair_t, test::simple_allocator< test_pair_t > >
- >;
- template class flat_multimap
- < test::movable_and_copyable_int
- , test::movable_and_copyable_int
- , std::less<test::movable_and_copyable_int>
- , static_vector<test_pair_t, 10 >
- >;
- //As flat container iterators are typedefs for vector::[const_]iterator,
- //no need to explicit instantiate them
- }} //boost::container
- #if (__cplusplus > 201103L)
- #include <vector>
- namespace boost{
- namespace container{
- template class flat_map
- < test::movable_and_copyable_int
- , test::movable_and_copyable_int
- , std::less<test::movable_and_copyable_int>
- , std::vector<test_pair_t>
- >;
- }} //boost::container
- #endif
- int main()
- {
- return 0;
- }
|