reactos/sdk/include/c++/stlport/functional

148 lines
3.3 KiB
Text

/*
* Copyright (c) 1996,1997
* Silicon Graphics Computer Systems, Inc.
*
* Copyright (c) 1999
* Boris Fomitchev
*
* This material is provided "as is", with absolutely no warranty expressed
* or implied. Any use is at your own risk.
*
* Permission to use or copy this software for any purpose is hereby granted
* without fee, provided the above notices are retained on all copies.
* Permission to modify the code and to distribute modified code is granted,
* provided the above notices are retained, and a notice that the code was
* modified is included with the above copyright notice.
*
*/
#ifndef _STLP_FUNCTIONAL
#ifndef _STLP_OUTERMOST_HEADER_ID
# define _STLP_OUTERMOST_HEADER_ID 0x27
# include <stl/_prolog.h>
# define _STLP_FUNCTIONAL
#endif
#if (_STLP_OUTERMOST_HEADER_ID == 0x27)
# ifndef _STLP_INTERNAL_FUNCTION_H
# include <stl/_function.h>
# endif
#endif
#if (_STLP_OUTERMOST_HEADER_ID != 0x27) || defined (_STLP_IMPORT_VENDOR_STD)
# if defined (_STLP_HAS_INCLUDE_NEXT)
# include_next <functional>
# else
# include _STLP_NATIVE_HEADER(functional)
# endif
#endif
#if (_STLP_OUTERMOST_HEADER_ID == 0x27)
# include <stl/_epilog.h>
# undef _STLP_OUTERMOST_HEADER_ID
#endif
#if !defined(_STLP_NO_EXTENSIONS) && defined(_STLP_USE_BOOST_SUPPORT)
#include <boost/ref.hpp>
#include <boost/utility/result_of.hpp>
#include <boost/bind/placeholders.hpp>
#include <boost/mem_fn.hpp>
#include <boost/bind.hpp>
namespace boost {
template<class T> class reference_wrapper;
template<class T> reference_wrapper<T> const ref(T &);
template<class T> inline reference_wrapper<T const> const cref(T const &);
template<typename F> struct result_of;
namespace _mfi {
template<class R, class T> class dm;
}
template<class R, class T> _mfi::dm<R, T> mem_fn(R T::*f);
} // namespace boost
_STLP_BEGIN_NAMESPACE
namespace tr1 {
using ::boost::reference_wrapper;
using ::boost::ref;
using ::boost::cref;
using ::boost::result_of;
using ::boost::mem_fn;
using ::boost::bind;
namespace placeholders {
using ::_1;
using ::_2;
using ::_3;
using ::_4;
using ::_5;
using ::_6;
using ::_7;
using ::_8;
using ::_9;
} // placeholders
} // namespace tr1
_STLP_END_NAMESPACE
#endif // !_STLP_NO_EXTENSIONS && _STLP_USE_BOOST_SUPPORT
#endif /* _STLP_FUNCTIONAL */
#if !defined(_STLP_FUNCTIONAL_FUN) && !defined(_STLP_NO_EXTENSIONS) && defined(_STLP_USE_BOOST_SUPPORT)
#ifndef BOOST_FUNCTION_NUM_ARGS // avoid recursive includes
// #ifdef BOOST_FUNCTION_BASE_HEADER
// #undef BOOST_FUNCTION_BASE_HEADER
// #endif
// #ifdef BOOST_FUNCTION_PROLOGUE_HPP
// #undef BOOST_FUNCTION_PROLOGUE_HPP
// #endif
#define _STLP_FUNCTIONAL_FUN
#ifndef BOOST_FUNCTION_BASE_HEADER // avoid recursive includes
# include <boost/function.hpp>
#else
namespace boost {
class bad_function_call;
template<typename Signature, typename Allocator >
class function;
template<typename Signature, typename Allocator>
void swap(function<Signature, Allocator>& f1, function<Signature, Allocator>& f2);
}
#endif
_STLP_BEGIN_NAMESPACE
namespace tr1 {
using ::boost::bad_function_call;
using ::boost::function;
using ::boost::swap;
} // namespace tr1
_STLP_END_NAMESPACE
#endif // !BOOST_FUNCTION_NUM_ARGS
#endif // !_STLP_FUNCTIONAL_REF && !_STLP_NO_EXTENSIONS && _STLP_USE_BOOST_SUPPORT
// Local Variables:
// mode:C++
// End: