hpx/execution_base/get_env.hpp

See Public API for a list of names and headers that are part of the public HPX API.

namespace hpx
namespace execution
namespace experimental

Typedefs

template<typename T>
using env_of_t = decltype(get_env(std::declval<T>()))
template<typename Tag, typename Value, typename BaseEnv = empty_env>
using make_env_t = decltype(make_env<Tag>(std::declval<Value&&>(), std::declval<BaseEnv&&>()))

Variables

template<typename Env>
constexpr bool is_no_env_v = is_no_env<Env>::value
hpx::execution::experimental::get_env_t get_env
hpx::execution::experimental::forwarding_env_query_t forwarding_env_query
struct forwarding_env_query_t : public hpx::functional::detail::tag_fallback<forwarding_env_query_t>

Friends

template<typename T>
friend constexpr auto tag_fallback_invoke(forwarding_env_query_t, T&&)
struct get_env_t : public hpx::functional::detail::tag_fallback<get_env_t>

Friends

template<typename EnvProvider>
friend constexpr auto tag_fallback_invoke(get_env_t, EnvProvider&&)
namespace exec_envs

Variables

template<typename Tag>
constexpr exec_envs::make_env_t<Tag> make_env = {}
template<typename Tag, typename Value, typename BaseEnvId = meta::hidden<empty_env>>
struct env

Public Types

template<>
using BaseEnv = meta::type<BaseEnvId>

Public Members

HPX_NO_UNIQUE_ADDRESS util::unwrap_reference_t<Value> hpx::execution::experimental::exec_envs::env::value_
HPX_NO_UNIQUE_ADDRESS BaseEnv hpx::execution::experimental::exec_envs::env::base_env_ = {}

Friends

template<typename Tag2, typename ...Args, typename = std::enable_if_t<functional::is_tag_invocable_v<Tag2, BaseEnv const&, Args...>>>
friend constexpr auto tag_invoke(Tag2 tag, env const &self, Args&&... args)
template<typename ...Args>
friend constexpr auto tag_invoke(Tag, env const &self, Args&&...)
template<typename Tag>
struct make_env_t

Public Functions

template<typename Value>
constexpr auto operator()(Value &&value) const
template<typename Value, typename BaseEnv>
constexpr auto operator()(Value &&value, BaseEnv &&base_env) const
struct no_env

Friends

template<typename Tag, typename Env>
std::enable_if_t<std::is_same_v<no_env, std::decay_t<Env>>> tag_invoke(Tag, Env)