/Src/Dependencies/Boost/boost/variant/detail/substitute_fwd.hpp

http://hadesmem.googlecode.com/ · C++ Header · 59 lines · 26 code · 12 blank · 21 comment · 2 complexity · 38ed0e54e50970a174c660218924d985 MD5 · raw file

  1. //-----------------------------------------------------------------------------
  2. // boost variant/detail/substitute_fwd.hpp header file
  3. // See http://www.boost.org for updates, documentation, and revision history.
  4. //-----------------------------------------------------------------------------
  5. //
  6. // Copyright (c) 2003
  7. // Eric Friedman
  8. //
  9. // Distributed under the Boost Software License, Version 1.0. (See
  10. // accompanying file LICENSE_1_0.txt or copy at
  11. // http://www.boost.org/LICENSE_1_0.txt)
  12. #ifndef BOOST_VARIANT_DETAIL_SUBSTITUTE_FWD_HPP
  13. #define BOOST_VARIANT_DETAIL_SUBSTITUTE_FWD_HPP
  14. #include "boost/mpl/aux_/lambda_arity_param.hpp"
  15. #include "boost/mpl/aux_/template_arity.hpp"
  16. #include "boost/mpl/int_fwd.hpp"
  17. ///////////////////////////////////////////////////////////////////////////////
  18. // BOOST_VARIANT_DETAIL_NO_SUBSTITUTE
  19. //
  20. // Defined if 'substitute' is not implementable on the current compiler.
  21. //
  22. #include "boost/mpl/aux_/config/ctps.hpp"
  23. #include "boost/mpl/aux_/config/ttp.hpp"
  24. #if defined(BOOST_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
  25. || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
  26. && !defined(BOOST_VARIANT_DETAIL_NO_SUBSTITUTE)
  27. # define BOOST_VARIANT_DETAIL_NO_SUBSTITUTE
  28. #endif
  29. namespace boost {
  30. namespace detail { namespace variant {
  31. #if !defined(BOOST_VARIANT_DETAIL_NO_SUBSTITUTE)
  32. ///////////////////////////////////////////////////////////////////////////////
  33. // metafunction substitute
  34. //
  35. // Substitutes one type for another in the given type expression.
  36. //
  37. template <
  38. typename T, typename Dest, typename Source
  39. BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(
  40. typename Arity = mpl::int_< mpl::aux::template_arity<T>::value >
  41. )
  42. >
  43. struct substitute;
  44. #endif // !defined(BOOST_VARIANT_DETAIL_NO_SUBSTITUTE)
  45. }} // namespace detail::variant
  46. } // namespace boost
  47. #endif // BOOST_VARIANT_DETAIL_SUBSTITUTE_FWD_HPP