48 lines
1.4 KiB
C++
48 lines
1.4 KiB
C++
/*=============================================================================
|
|
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 <typename Env, typename OuterEnv, typename Locals, typename Map>
|
|
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
|