////////////////////////////////////////////////////////////////////////////// // // (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 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_set; template class ::boost::container::flat_multiset; volatile ::boost::container::flat_set dummy; volatile ::boost::container::flat_multiset dummy2; #include #include "movable_int.hpp" #include "dummy_test_allocator.hpp" #include #include #include #include namespace boost { namespace container { //Explicit instantiation to detect compilation errors //flat_set template class flat_set < test::movable_and_copyable_int , std::less , small_vector > >; //flat_multiset template class flat_multiset < test::movable_and_copyable_int , std::less , stable_vector > >; template class flat_multiset < test::movable_and_copyable_int , std::less , deque > >; template class flat_multiset < test::movable_and_copyable_int , std::less , static_vector >; //As flat container iterators are typedefs for vector::[const_]iterator, //no need to explicit instantiate them }} //boost::container #if (__cplusplus > 201103L) #include namespace boost{ namespace container{ template class flat_set < test::movable_and_copyable_int , std::less , std::vector >; }} //boost::container #endif int main() { return 0; }