/src/contrib/boost/spirit/home/phoenix/scope/scoped_environment.hpp

http://pythonocc.googlecode.com/ · C++ Header · 47 lines · 33 code · 6 blank · 8 comment · 0 complexity · 050cb5ed05a338c25f1aa56c322f127a MD5 · raw file

  1. /*=============================================================================
  2. Copyright (c) 2001-2007 Joel de Guzman
  3. Copyright (c) 2004 Daniel Wallin
  4. Distributed under the Boost Software License, Version 1.0. (See accompanying
  5. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. ==============================================================================*/
  7. #ifndef PHOENIX_SCOPE_SCOPED_ENVIRONMENT_HPP
  8. #define PHOENIX_SCOPE_SCOPED_ENVIRONMENT_HPP
  9. namespace boost { namespace phoenix
  10. {
  11. template <typename Env, typename OuterEnv, typename Locals, typename Map>
  12. struct scoped_environment
  13. {
  14. typedef Env env_type;
  15. typedef OuterEnv outer_env_type;
  16. typedef Locals locals_type;
  17. typedef Map map_type;
  18. typedef typename Env::args_type args_type;
  19. typedef typename Env::tie_type tie_type;
  20. scoped_environment(
  21. Env const& env
  22. , OuterEnv const& outer_env
  23. , Locals& locals)
  24. : env(env)
  25. , outer_env(outer_env)
  26. , locals(locals) {}
  27. tie_type const&
  28. args() const
  29. {
  30. return env.args();
  31. }
  32. Env const& env;
  33. OuterEnv const& outer_env;
  34. Locals& locals;
  35. private:
  36. // silence MSVC warning C4512: assignment operator could not be generated
  37. scoped_environment& operator= (scoped_environment const&);
  38. };
  39. }}
  40. #endif