/Src/Dependencies/Boost/boost/fusion/algorithm/transformation/replace.hpp

http://hadesmem.googlecode.com/ · C++ Header · 35 lines · 24 code · 5 blank · 6 comment · 0 complexity · d0b0b75a12025e16694cd8a2b2e01229 MD5 · raw file

  1. /*=============================================================================
  2. Copyright (c) 2001-2006 Joel de Guzman
  3. Distributed under the Boost Software License, Version 1.0. (See accompanying
  4. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5. ==============================================================================*/
  6. #if !defined(FUSION_REPLACE_08182005_0830)
  7. #define FUSION_REPLACE_08182005_0830
  8. #include <boost/fusion/view/transform_view/transform_view.hpp>
  9. #include <boost/fusion/algorithm/transformation/detail/replace.hpp>
  10. namespace boost { namespace fusion
  11. {
  12. namespace result_of
  13. {
  14. template <typename Sequence, typename T>
  15. struct replace
  16. {
  17. typedef transform_view<Sequence, detail::replacer<T> > type;
  18. };
  19. }
  20. template <typename Sequence, typename T>
  21. inline typename result_of::replace<Sequence const, T>::type
  22. replace(Sequence const& seq, T const& old_value, T const& new_value)
  23. {
  24. typedef typename result_of::replace<Sequence const, T>::type result;
  25. detail::replacer<T> f(old_value, new_value);
  26. return result(seq, f);
  27. }
  28. }}
  29. #endif