You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
47 lines
1.4 KiB
47 lines
1.4 KiB
/*============================================================================= |
|
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
|
|
|