/*=============================================================================
    Copyright (c) 2001-2011 Joel de Guzman

    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)

    This is an auto-generated file. Do not edit!
==============================================================================*/
namespace boost { namespace fusion
{
    template <typename T0>
    inline tuple<T0&>
    tie(T0 & _0)
    {
        return tuple<T0&>(
            _0);
    }
    template <typename T0 , typename T1>
    inline tuple<T0& , T1&>
    tie(T0 & _0 , T1 & _1)
    {
        return tuple<T0& , T1&>(
            _0 , _1);
    }
    template <typename T0 , typename T1 , typename T2>
    inline tuple<T0& , T1& , T2&>
    tie(T0 & _0 , T1 & _1 , T2 & _2)
    {
        return tuple<T0& , T1& , T2&>(
            _0 , _1 , _2);
    }
    template <typename T0 , typename T1 , typename T2 , typename T3>
    inline tuple<T0& , T1& , T2& , T3&>
    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3)
    {
        return tuple<T0& , T1& , T2& , T3&>(
            _0 , _1 , _2 , _3);
    }
    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
    inline tuple<T0& , T1& , T2& , T3& , T4&>
    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4)
    {
        return tuple<T0& , T1& , T2& , T3& , T4&>(
            _0 , _1 , _2 , _3 , _4);
    }
    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
    inline tuple<T0& , T1& , T2& , T3& , T4& , T5&>
    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5)
    {
        return tuple<T0& , T1& , T2& , T3& , T4& , T5&>(
            _0 , _1 , _2 , _3 , _4 , _5);
    }
    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6&>
    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6)
    {
        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6&>(
            _0 , _1 , _2 , _3 , _4 , _5 , _6);
    }
    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7&>
    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7)
    {
        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7&>(
            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7);
    }
    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8&>
    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8)
    {
        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8&>(
            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8);
    }
    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9&>
    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9)
    {
        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9&>(
            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9);
    }
}}
