/*============================================================================= Copyright (c) 2001-2007 Joel de Guzman Copyright (c) 2004 Daniel Wallin Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #ifndef PHOENIX_SCOPE_SCOPED_ENVIRONMENT_HPP #define PHOENIX_SCOPE_SCOPED_ENVIRONMENT_HPP namespace boost { namespace phoenix { template struct scoped_environment { typedef Env env_type; typedef OuterEnv outer_env_type; typedef Locals locals_type; typedef Map map_type; typedef typename Env::args_type args_type; typedef typename Env::tie_type tie_type; scoped_environment( Env const& env , OuterEnv const& outer_env , Locals& locals) : env(env) , outer_env(outer_env) , locals(locals) {} tie_type const& args() const { return env.args(); } Env const& env; OuterEnv const& outer_env; Locals& locals; private: // silence MSVC warning C4512: assignment operator could not be generated scoped_environment& operator= (scoped_environment const&); }; }} #endif