imgtools/imglib/boostlibrary/boost/bind/arg.hpp
changeset 0 044383f39525
equal deleted inserted replaced
-1:000000000000 0:044383f39525
       
     1 #ifndef BOOST_BIND_ARG_HPP_INCLUDED
       
     2 #define BOOST_BIND_ARG_HPP_INCLUDED
       
     3 
       
     4 // MS compatible compilers support #pragma once
       
     5 
       
     6 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
       
     7 # pragma once
       
     8 #endif
       
     9 
       
    10 //
       
    11 //  bind/arg.hpp
       
    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
       
    17 // http://www.boost.org/LICENSE_1_0.txt)
       
    18 //
       
    19 //  See http://www.boost.org/libs/bind/bind.html for documentation.
       
    20 //
       
    21 
       
    22 #include <boost/config.hpp>
       
    23 #include <boost/is_placeholder.hpp>
       
    24 
       
    25 namespace boost
       
    26 {
       
    27 
       
    28 template< int I > struct arg
       
    29 {
       
    30     arg()
       
    31     {
       
    32     }
       
    33 
       
    34     template< class T > arg( T const & /* t */ )
       
    35     {
       
    36         // static assert I == is_placeholder<T>::value
       
    37         typedef char T_must_be_placeholder[ I == is_placeholder<T>::value? 1: -1 ];
       
    38     }
       
    39 };
       
    40 
       
    41 template< int I > bool operator==( arg<I> const &, arg<I> const & )
       
    42 {
       
    43     return true;
       
    44 }
       
    45 
       
    46 #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
       
    47 
       
    48 template< int I > struct is_placeholder< arg<I> >
       
    49 {
       
    50     enum _vt { value = I };
       
    51 };
       
    52 
       
    53 template< int I > struct is_placeholder< arg<I> (*) () >
       
    54 {
       
    55     enum _vt { value = I };
       
    56 };
       
    57 
       
    58 #endif
       
    59 
       
    60 } // namespace boost
       
    61 
       
    62 #endif // #ifndef BOOST_BIND_ARG_HPP_INCLUDED