libs/flyweight/test/test_assoc_cont_factory.cpp
/* Boost.Flyweight test of assoc_container_factory. * * Copyright 2006-2008 Joaquin M Lopez Munoz. * 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/flyweight for library home page. */ #include "test_assoc_cont_factory.hpp" #include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ #include <boost/flyweight/assoc_container_factory.hpp> #include <boost/flyweight/flyweight.hpp> #include <boost/flyweight/refcounted.hpp> #include <boost/flyweight/simple_locking.hpp> #include <boost/flyweight/static_holder.hpp> #include <functional> #include <set> #include "test_basic_template.hpp" using namespace boost::flyweights; struct reverse_set_specifier { template<typename Entry,typename Key> struct apply { typedef std::set<Entry,std::greater<Key> > type; }; }; struct assoc_container_factory_flyweight_specifier1 { template<typename T> struct apply { typedef flyweight< T, assoc_container_factory<reverse_set_specifier> > type; }; }; struct assoc_container_factory_flyweight_specifier2 { template<typename T> struct apply { typedef flyweight< T, assoc_container_factory_class< std::set< boost::mpl::_1, std::greater<boost::mpl::_2>, std::allocator<boost::mpl::_1> > > > type; }; }; void test_assoc_container_factory() { test_basic_template<assoc_container_factory_flyweight_specifier1>(); test_basic_template<assoc_container_factory_flyweight_specifier2>(); }





