os/ossrv/ossrv_pub/boost_apis/boost/tr1/tuple.hpp
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
     2 
     3 #ifndef BOOST_TR1_TUPLE_HPP_INCLUDED
     4 #  define BOOST_TR1_TUPLE_HPP_INCLUDED
     5 #  include <boost/tr1/detail/config.hpp>
     6 
     7 #ifdef BOOST_HAS_TR1_TUPLE
     8 
     9 #  include BOOST_TR1_HEADER(tuple)
    10 
    11 #else
    12 
    13 #if defined(BOOST_TR1_USE_OLD_TUPLE)
    14 
    15 #include <boost/tuple/tuple.hpp>
    16 #include <boost/tuple/tuple_comparison.hpp>
    17 #include <boost/type_traits/integral_constant.hpp>
    18 
    19 namespace std{ namespace tr1{
    20 
    21 using ::boost::tuple;
    22 
    23 // [6.1.3.2] Tuple creation functions
    24 using ::boost::tuples::ignore;
    25 using ::boost::make_tuple;
    26 using ::boost::tie;
    27 
    28 // [6.1.3.3] Tuple helper classes
    29 template <class T> 
    30 struct tuple_size 
    31    : public ::boost::integral_constant
    32    < ::std::size_t, ::boost::tuples::length<T>::value>
    33 {};
    34 
    35 template < int I, class T>
    36 struct tuple_element
    37 {
    38    typedef typename boost::tuples::element<I,T>::type type;
    39 };
    40 
    41 #if !BOOST_WORKAROUND(__BORLANDC__, < 0x0582)
    42 // [6.1.3.4] Element access
    43 using ::boost::get;
    44 #endif
    45 
    46 } } // namespaces
    47 
    48 #else
    49 
    50 #include <boost/spirit/fusion/sequence/tuple.hpp>
    51 #include <boost/spirit/fusion/sequence/tuple_element.hpp>
    52 #include <boost/spirit/fusion/sequence/tuple_size.hpp>
    53 #include <boost/spirit/fusion/sequence/make_tuple.hpp>
    54 #include <boost/spirit/fusion/sequence/tie.hpp>
    55 #include <boost/spirit/fusion/sequence/get.hpp>
    56 #include <boost/spirit/fusion/sequence/equal_to.hpp>
    57 #include <boost/spirit/fusion/sequence/not_equal_to.hpp>
    58 #include <boost/spirit/fusion/sequence/less.hpp>
    59 #include <boost/spirit/fusion/sequence/less_equal.hpp>
    60 #include <boost/spirit/fusion/sequence/greater.hpp>
    61 #include <boost/spirit/fusion/sequence/greater_equal.hpp>
    62 
    63 namespace std{ namespace tr1{
    64 
    65 using ::boost::fusion::tuple;
    66 
    67 // [6.1.3.2] Tuple creation functions
    68 using ::boost::fusion::ignore;
    69 using ::boost::fusion::make_tuple;
    70 using ::boost::fusion::tie;
    71 using ::boost::fusion::get;
    72 
    73 // [6.1.3.3] Tuple helper classes
    74 using ::boost::fusion::tuple_size;
    75 using ::boost::fusion::tuple_element;
    76 
    77 }}
    78 
    79 #endif
    80 
    81 #endif
    82 
    83 #endif