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