BOOST_PROTO_DEFINE_ENV_VAR(Type, Name)
namespace boost {
namespace proto {
struct key_not_found;
struct empty_env;
template<typename Key, typename Value, typename Env = proto::empty_env>
struct env;
template<typename T> struct is_env;
struct data_type;
proto::data_type const data;
template<typename Key> struct _env_var;
struct _env;
template<typename T>
typename proto::result_of::as_env<T &>::type as_env(T &);
template<typename T>
typename proto::result_of::as_env<T const &>::type as_env(T const &);
template<typename Key, typename Env>
typename proto::result_of::has_env_var<Env &, Key>::type
has_env_var(Env &);
template<typename Key, typename Env>
typename proto::result_of::has_env_var<Env const &, Key>::type
has_env_var(Env const &);
template<typename Key, typename Env>
typename proto::result_of::env_var<Env &, Key>::type env_var(Env &);
template<typename Key, typename Env>
typename proto::result_of::env_var<Env const &, Key>::type
env_var(Env const &);
template<typename Env, typename Key, typename Value>
proto::env<Key, Value, UNCVREF
(typename proto::result_of::as_env<Env &>::type)>
operator,(Env &, proto::env<Key, Value> const &);
template<typename Env, typename Key, typename Value>
proto::env<Key, Value, UNCVREF
(typename proto::result_of::as_env<Env const &>::type)>
operator,(Env const &, proto::env<Key, Value> const &);
namespace functional {
struct as_env;
template<typename Key> struct has_env_var;
template<typename Key> struct env_var;
}
namespace result_of {
template<typename T> struct as_env;
template<typename Env, typename Key> struct has_env_var;
template<typename Env, typename Key> struct env_var;
}
}
}