os/ossrv/ossrv_pub/boost_apis/boost/tr1/functional.hpp
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/tr1/functional.hpp	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,137 @@
     1.4 +//  (C) Copyright John Maddock 2005.
     1.5 +//  Use, modification and distribution are subject to the
     1.6 +//  Boost Software License, Version 1.0. (See accompanying file
     1.7 +//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
     1.8 +
     1.9 +#ifndef BOOST_TR1_FUNCTIONAL_HPP_INCLUDED
    1.10 +#  define BOOST_TR1_FUNCTIONAL_HPP_INCLUDED
    1.11 +#  include <boost/tr1/detail/config.hpp>
    1.12 +#  include <functional>
    1.13 +
    1.14 +#if defined(BOOST_HAS_TR1_REFERENCE_WRAPPER) \
    1.15 +   || defined(BOOST_HAS_TR1_RESULT_OF)\
    1.16 +   || defined(BOOST_HAS_TR1_MEM_FN)\
    1.17 +   || defined(BOOST_HAS_TR1_BIND)\
    1.18 +   || defined(BOOST_HAS_TR1_FUNCTION)\
    1.19 +   || defined(BOOST_HAS_TR1_HASH)
    1.20 +#  ifdef BOOST_HAS_INCLUDE_NEXT
    1.21 +#     include_next BOOST_TR1_HEADER(functional)
    1.22 +#  else
    1.23 +#     include BOOST_TR1_STD_HEADER(BOOST_TR1_PATH(functional))
    1.24 +#  endif
    1.25 +#endif
    1.26 +
    1.27 +#ifndef BOOST_HAS_TR1_REFERENCE_WRAPPER
    1.28 +
    1.29 +#include <boost/ref.hpp>
    1.30 +
    1.31 +namespace std{ namespace tr1{
    1.32 +
    1.33 +   using ::boost::reference_wrapper;
    1.34 +   using ::boost::ref;
    1.35 +   using ::boost::cref;
    1.36 +
    1.37 +} }
    1.38 +
    1.39 +#endif  // BOOST_HAS_TR1_REFERENCE_WRAPPER
    1.40 +
    1.41 +#if !defined(BOOST_HAS_TR1_RESULT_OF)\
    1.42 +   && !defined(BOOST_NO_SFINAE) && \
    1.43 +   !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
    1.44 +
    1.45 +//
    1.46 +// we can only actually include result_of.hpp if the compiler
    1.47 +// really does support it, otherwise we just get endless errors...
    1.48 +//
    1.49 +#include <boost/utility/result_of.hpp>
    1.50 +
    1.51 +namespace std{ namespace tr1{
    1.52 +
    1.53 +   using ::boost::result_of;
    1.54 +
    1.55 +} }
    1.56 +
    1.57 +#endif // BOOST_HAS_TR1_RESULT_OF
    1.58 +
    1.59 +#ifndef BOOST_HAS_TR1_MEM_FN
    1.60 +// mem_fn:
    1.61 +#include <boost/mem_fn.hpp>
    1.62 +
    1.63 +namespace std{ namespace tr1{
    1.64 +
    1.65 +using boost::mem_fn;
    1.66 +
    1.67 +} }
    1.68 +
    1.69 +#endif // BOOST_HAS_TR1_MEM_FN
    1.70 +
    1.71 +
    1.72 +#ifndef BOOST_HAS_TR1_BIND
    1.73 +// Bind:
    1.74 +#include <boost/bind.hpp>
    1.75 +
    1.76 +namespace std{ namespace tr1{
    1.77 +
    1.78 +   // These aren't supported in this release but are in mainline cvs:
    1.79 +   // using ::boost::is_bind_expression;
    1.80 +   // using ::boost::is_placeholder;
    1.81 +   using ::boost::bind;
    1.82 +   namespace placeholders {
    1.83 +#ifndef BOOST_BIND_NO_PLACEHOLDERS
    1.84 +      using ::_1;
    1.85 +      using ::_2;
    1.86 +      using ::_3;
    1.87 +      using ::_4;
    1.88 +      using ::_5;
    1.89 +      using ::_6;
    1.90 +      using ::_7;
    1.91 +      using ::_8;
    1.92 +      using ::_9;
    1.93 +#endif
    1.94 +   } // placeholders
    1.95 +
    1.96 +} }
    1.97 +
    1.98 +#endif
    1.99 +
   1.100 +#ifndef BOOST_HAS_TR1_FUNCTION
   1.101 +// polymorphic function object wrappers:
   1.102 +#include <boost/function.hpp>
   1.103 +#include <boost/detail/workaround.hpp>
   1.104 +
   1.105 +#if !BOOST_WORKAROUND(__BORLANDC__, < 0x582) \
   1.106 +    && !BOOST_WORKAROUND(BOOST_MSVC, < 1310) \
   1.107 +    && !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
   1.108 +namespace std{ namespace tr1{
   1.109 +
   1.110 +   using ::boost::bad_function_call;
   1.111 +   using ::boost::function;
   1.112 +   using ::boost::swap;
   1.113 +
   1.114 +}}
   1.115 +#endif
   1.116 +
   1.117 +#endif // BOOST_HAS_TR1_FUNCTION
   1.118 +
   1.119 +#ifndef BOOST_HAS_TR1_HASH
   1.120 +//
   1.121 +// This header can get included by boost/hash.hpp
   1.122 +// leading to cyclic dependencies.  As a workaround
   1.123 +// we forward declare boost::hash and include
   1.124 +// the actual header later.
   1.125 +//
   1.126 +namespace boost{
   1.127 +template <class T> struct hash;
   1.128 +}
   1.129 +
   1.130 +namespace std{ namespace tr1{
   1.131 +   using ::boost::hash;
   1.132 +
   1.133 +}}
   1.134 +
   1.135 +#include <boost/functional/hash.hpp>
   1.136 +
   1.137 +#endif
   1.138 +
   1.139 +#endif
   1.140 +