epoc32/include/stdapis/boost/bind/arg.hpp
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
equal deleted inserted replaced
3:e1b950c65cb4 4:837f303aceeb
       
     1 #ifndef BOOST_BIND_ARG_HPP_INCLUDED
       
     2 #define BOOST_BIND_ARG_HPP_INCLUDED
     1 
     3 
     2 // Copyright Peter Dimov 2001-2002
     4 // MS compatible compilers support #pragma once
     3 // Copyright Aleksey Gurtovoy 2001-2004
     5 
       
     6 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
       
     7 # pragma once
       
     8 #endif
       
     9 
     4 //
    10 //
     5 // Distributed under the Boost Software License, Version 1.0. 
    11 //  bind/arg.hpp
     6 // (See accompanying file LICENSE_1_0.txt or copy at 
    12 //
       
    13 //  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
       
    14 //
       
    15 // Distributed under the Boost Software License, Version 1.0. (See
       
    16 // accompanying file LICENSE_1_0.txt or copy at
     7 // http://www.boost.org/LICENSE_1_0.txt)
    17 // http://www.boost.org/LICENSE_1_0.txt)
     8 //
    18 //
       
    19 //  See http://www.boost.org/libs/bind/bind.html for documentation.
       
    20 //
     9 
    21 
    10 // Preprocessed version of "boost/mpl/arg.hpp" header
    22 namespace boost
    11 // -- DO NOT modify by hand!
    23 {
    12 
    24 
    13 BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
    25 template<int I> class arg
    14 template<> struct arg< -1 >
       
    15 {
    26 {
    16     BOOST_STATIC_CONSTANT(int, value  = -1);
       
    17     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
       
    18     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
       
    19 
       
    20     template<
       
    21           typename U1 = na, typename U2 = na, typename U3 = na
       
    22         , typename U4 = na, typename U5 = na
       
    23         >
       
    24     struct apply
       
    25     {
       
    26         typedef U1 type;
       
    27         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
       
    28     };
       
    29 };
    27 };
    30 
    28 
    31 template<> struct arg<1>
    29 template<int I> bool operator==(arg<I> const &, arg<I> const &)
    32 {
    30 {
    33     BOOST_STATIC_CONSTANT(int, value  = 1);
    31     return true;
    34     typedef arg<2> next;
    32 }
    35     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
       
    36     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
       
    37 
    33 
    38     template<
    34 } // namespace boost
    39           typename U1 = na, typename U2 = na, typename U3 = na
       
    40         , typename U4 = na, typename U5 = na
       
    41         >
       
    42     struct apply
       
    43     {
       
    44         typedef U1 type;
       
    45         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
       
    46     };
       
    47 };
       
    48 
    35 
    49 template<> struct arg<2>
    36 #endif // #ifndef BOOST_BIND_ARG_HPP_INCLUDED
    50 {
       
    51     BOOST_STATIC_CONSTANT(int, value  = 2);
       
    52     typedef arg<3> next;
       
    53     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
       
    54     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
       
    55 
       
    56     template<
       
    57           typename U1 = na, typename U2 = na, typename U3 = na
       
    58         , typename U4 = na, typename U5 = na
       
    59         >
       
    60     struct apply
       
    61     {
       
    62         typedef U2 type;
       
    63         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
       
    64     };
       
    65 };
       
    66 
       
    67 template<> struct arg<3>
       
    68 {
       
    69     BOOST_STATIC_CONSTANT(int, value  = 3);
       
    70     typedef arg<4> next;
       
    71     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
       
    72     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
       
    73 
       
    74     template<
       
    75           typename U1 = na, typename U2 = na, typename U3 = na
       
    76         , typename U4 = na, typename U5 = na
       
    77         >
       
    78     struct apply
       
    79     {
       
    80         typedef U3 type;
       
    81         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
       
    82     };
       
    83 };
       
    84 
       
    85 template<> struct arg<4>
       
    86 {
       
    87     BOOST_STATIC_CONSTANT(int, value  = 4);
       
    88     typedef arg<5> next;
       
    89     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
       
    90     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
       
    91 
       
    92     template<
       
    93           typename U1 = na, typename U2 = na, typename U3 = na
       
    94         , typename U4 = na, typename U5 = na
       
    95         >
       
    96     struct apply
       
    97     {
       
    98         typedef U4 type;
       
    99         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
       
   100     };
       
   101 };
       
   102 
       
   103 template<> struct arg<5>
       
   104 {
       
   105     BOOST_STATIC_CONSTANT(int, value  = 5);
       
   106     typedef arg<6> next;
       
   107     BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
       
   108     BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
       
   109 
       
   110     template<
       
   111           typename U1 = na, typename U2 = na, typename U3 = na
       
   112         , typename U4 = na, typename U5 = na
       
   113         >
       
   114     struct apply
       
   115     {
       
   116         typedef U5 type;
       
   117         BOOST_MPL_AUX_ASSERT_NOT_NA(type);
       
   118     };
       
   119 };
       
   120 
       
   121 BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
       
   122 
       
   123 BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE