/* Copyright 2003-2005 Joaquín M López Muñoz.

 * 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_SEQUENCED_INDEX_FWD_HPP

#define BOOST_MULTI_INDEX_SEQUENCED_INDEX_FWD_HPP



#if defined(_MSC_VER)&&(_MSC_VER>=1200)

#pragma once

#endif



#include <boost/multi_index/tag.hpp>



namespace boost{



namespace multi_index{



namespace detail{



template<typename SuperMeta,typename TagList>

class sequenced_index;



template<

  typename SuperMeta1,typename TagList1,

  typename SuperMeta2,typename TagList2

>

bool operator==(

  const sequenced_index<SuperMeta1,TagList1>& x,

  const sequenced_index<SuperMeta2,TagList2>& y);



template<

  typename SuperMeta1,typename TagList1,

  typename SuperMeta2,typename TagList2

>

bool operator<(

  const sequenced_index<SuperMeta1,TagList1>& x,

  const sequenced_index<SuperMeta2,TagList2>& y);



template<

  typename SuperMeta1,typename TagList1,

  typename SuperMeta2,typename TagList2

>

bool operator!=(

  const sequenced_index<SuperMeta1,TagList1>& x,

  const sequenced_index<SuperMeta2,TagList2>& y);



template<

  typename SuperMeta1,typename TagList1,

  typename SuperMeta2,typename TagList2

>

bool operator>(

  const sequenced_index<SuperMeta1,TagList1>& x,

  const sequenced_index<SuperMeta2,TagList2>& y);



template<

  typename SuperMeta1,typename TagList1,

  typename SuperMeta2,typename TagList2

>

bool operator>=(

  const sequenced_index<SuperMeta1,TagList1>& x,

  const sequenced_index<SuperMeta2,TagList2>& y);



template<

  typename SuperMeta1,typename TagList1,

  typename SuperMeta2,typename TagList2

>

bool operator<=(

  const sequenced_index<SuperMeta1,TagList1>& x,

  const sequenced_index<SuperMeta2,TagList2>& y);



template<typename SuperMeta,typename TagList>

void swap(

  sequenced_index<SuperMeta,TagList>& x,

  sequenced_index<SuperMeta,TagList>& y);



} /* namespace multi_index::detail */



/* index specifiers */



template <typename TagList=tag<> >

struct sequenced;



} /* namespace multi_index */



} /* namespace boost */



#endif

