| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | /* Copyright 2003-2013 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/multi_index for library home page. */#ifndef BOOST_MULTI_INDEX_FWD_HPP#define BOOST_MULTI_INDEX_FWD_HPP#if defined(_MSC_VER)#pragma once#endif#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */#include <boost/multi_index/identity.hpp>#include <boost/multi_index/indexed_by.hpp>#include <boost/multi_index/ordered_index_fwd.hpp>#include <memory>namespace boost{namespace multi_index{/* Default value for IndexSpecifierList specifies a container * equivalent to std::set<Value>. */template<  typename Value,  typename IndexSpecifierList=indexed_by<ordered_unique<identity<Value> > >,  typename Allocator=std::allocator<Value> >class multi_index_container;template<typename MultiIndexContainer,int N>struct nth_index;template<typename MultiIndexContainer,typename Tag>struct index;template<typename MultiIndexContainer,int N>struct nth_index_iterator;template<typename MultiIndexContainer,int N>struct nth_index_const_iterator;template<typename MultiIndexContainer,typename Tag>struct index_iterator;template<typename MultiIndexContainer,typename Tag>struct index_const_iterator;/* get and project functions not fwd declared due to problems * with dependent typenames */template<  typename Value1,typename IndexSpecifierList1,typename Allocator1,  typename Value2,typename IndexSpecifierList2,typename Allocator2>bool operator==(  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y);template<  typename Value1,typename IndexSpecifierList1,typename Allocator1,  typename Value2,typename IndexSpecifierList2,typename Allocator2>bool operator<(  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y);template<  typename Value1,typename IndexSpecifierList1,typename Allocator1,  typename Value2,typename IndexSpecifierList2,typename Allocator2>bool operator!=(  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y);template<  typename Value1,typename IndexSpecifierList1,typename Allocator1,  typename Value2,typename IndexSpecifierList2,typename Allocator2>bool operator>(  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y);template<  typename Value1,typename IndexSpecifierList1,typename Allocator1,  typename Value2,typename IndexSpecifierList2,typename Allocator2>bool operator>=(  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y);template<  typename Value1,typename IndexSpecifierList1,typename Allocator1,  typename Value2,typename IndexSpecifierList2,typename Allocator2>bool operator<=(  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x,  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y);template<typename Value,typename IndexSpecifierList,typename Allocator>void swap(  multi_index_container<Value,IndexSpecifierList,Allocator>& x,  multi_index_container<Value,IndexSpecifierList,Allocator>& y);} /* namespace multi_index *//* multi_index_container, being the main type of this library, is promoted to * namespace boost. */using multi_index::multi_index_container;} /* namespace boost */#endif
 |