/* * 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 # define _STLP_FUNCTIONAL #endif #if (_STLP_OUTERMOST_HEADER_ID == 0x27) # ifndef _STLP_INTERNAL_FUNCTION_H # include # endif #endif #if (_STLP_OUTERMOST_HEADER_ID != 0x27) || defined (_STLP_IMPORT_VENDOR_STD) # if defined (_STLP_HAS_INCLUDE_NEXT) # include_next # else # include _STLP_NATIVE_HEADER(functional) # endif #endif #if (_STLP_OUTERMOST_HEADER_ID == 0x27) # include # undef _STLP_OUTERMOST_HEADER_ID #endif #if !defined(_STLP_NO_EXTENSIONS) && defined(_STLP_USE_BOOST_SUPPORT) #include #include #include #include #include namespace boost { template class reference_wrapper; template reference_wrapper const ref(T &); template inline reference_wrapper const cref(T const &); template struct result_of; namespace _mfi { template class dm; } template _mfi::dm 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 #else namespace boost { class bad_function_call; template class function; template void swap(function& f1, function& 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: