/
BirdLeon
/
ROBLOX2016
Обзор
Документация
Войти
/
BirdLeon
/
ROBLOX2016
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Library/boost/libs/container/test/flat_tree_test.cpp
156 строк
5 KB
PatoFlamejanteTV
full source code
19 дек 2024, 19:11
19 дек 2024, 19:11
05db15d
Код
Авторство
О чём код?
////////////////////////////////////////////////////////////////////////////// // // (C) Copyright Ion Gaztanaga 2004-2013. 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/detail/flat_tree.hpp> #include <boost/container/small_vector.hpp> #include <boost/container/stable_vector.hpp> #include <boost/container/static_vector.hpp> #include <iostream> #include "movable_int.hpp" #include "dummy_test_allocator.hpp" using namespace boost::container; typedef boost::container::dtl::pair<test::movable_and_copyable_int, test::movable_and_copyable_int> pair_t; namespace boost { namespace container { //Explicit instantiation to detect compilation errors namespace dtl { template class flat_tree < pair_t , select1st<test::movable_and_copyable_int> , std::less<test::movable_and_copyable_int> , test::simple_allocator<pair_t> >; template class flat_tree < pair_t , select1st<test::movable_and_copyable_int> , std::less<test::movable_and_copyable_int> , std::allocator<pair_t> >; template class flat_tree < pair_t , select1st<test::movable_and_copyable_int> , std::less<test::movable_and_copyable_int> , small_vector<pair_t, 10> >; template class flat_tree < pair_t , select1st<test::movable_and_copyable_int> , std::less<test::movable_and_copyable_int> , stable_vector<pair_t> >; template class flat_tree < test::movable_and_copyable_int , identity<test::movable_and_copyable_int> , std::less<test::movable_and_copyable_int> , test::simple_allocator<test::movable_and_copyable_int> >; template class flat_tree < test::movable_and_copyable_int , identity<test::movable_and_copyable_int> , std::less<test::movable_and_copyable_int> , std::allocator<test::movable_and_copyable_int> >; template class flat_tree < test::movable_and_copyable_int , identity<test::movable_and_copyable_int> , std::less<test::movable_and_copyable_int> , small_vector<test::movable_and_copyable_int, 10> >; template class flat_tree < test::movable_and_copyable_int , identity<test::movable_and_copyable_int> , std::less<test::movable_and_copyable_int> , stable_vector<test::movable_and_copyable_int> >; template class flat_tree < test::movable_and_copyable_int , identity<test::movable_and_copyable_int> , std::less<test::movable_and_copyable_int> , static_vector<test::movable_and_copyable_int, 10> >; } //dtl { }} //boost::container #if (__cplusplus > 201103L) #include <vector> namespace boost{ namespace container{ namespace dtl{ template class flat_tree < test::movable_and_copyable_int , identity<test::movable_and_copyable_int> , std::less<test::movable_and_copyable_int> , std::vector<test::movable_and_copyable_int> >; template class flat_tree < pair_t , select1st<test::movable_and_copyable_int> , std::less<test::movable_and_copyable_int> , std::vector<pair_t> >; } //dtl { }} //boost::container #endif int main () { //////////////////////////////////// // has_trivial_destructor_after_move testing //////////////////////////////////// // default { typedef boost::container::dtl::flat_tree<int, boost::container::dtl::identity<int>, std::less<int>, void> tree; typedef tree::container_type container_type; typedef tree::key_compare key_compare; if (boost::has_trivial_destructor_after_move<tree>::value != boost::has_trivial_destructor_after_move<container_type>::value && boost::has_trivial_destructor_after_move<key_compare>::value) { std::cerr << "has_trivial_destructor_after_move(default allocator) test failed" << std::endl; return 1; } } // std::allocator { typedef boost::container::dtl::flat_tree<int, boost::container::dtl::identity<int>, std::less<int>, std::allocator<int> > tree; typedef tree::container_type container_type; typedef tree::key_compare key_compare; if (boost::has_trivial_destructor_after_move<tree>::value != boost::has_trivial_destructor_after_move<container_type>::value && boost::has_trivial_destructor_after_move<key_compare>::value) { std::cerr << "has_trivial_destructor_after_move(std::allocator) test failed" << std::endl; return 1; } } return 0; }