最終更新日時(UTC):
が更新

履歴 編集

customization point object
<execution>

std::execution::get_env(C++26)

namespace std::execution {
  struct get_env_t { unspecified };
  inline constexpr get_env_t get_env{};
}

概要

get_envは、対象オブジェクトに関連付けられたクエリ可能オブジェクトを取得するカスタマイゼーションポイントオブジェクトである。

  • Senderに関連付けられた属性
  • Receiverに関連付けられた環境

効果

呼び出し式get_env(o)は下記と等価であり、queryableを満たす型の値となる。

  • 引数oがconst修飾されたcoを用いて、式co.get_env()適格であればその値。
  • そうでなければ、空のクエリ可能オブジェクトenv<>{}

例外

投げない

カスタマイゼーションポイント

const修飾された対象オブジェクトcoに対して式co.get_env()が呼び出される。 このとき、noexcept(co.get_env()) == trueであること。

備考

Senderに関連付けられたクエリ可能オブジェクトは「属性(attributes)」と呼ばれるが、本get_envを用いてクエリ可能オブジェクトを取得する。実行制御ライブラリ仕様検討中には専用のget_attrsとして存在していたが、同じ動作セマンティクスを持つget_envに統合された経緯がある。

#include <execution>
namespace ex = std::execution;

int main()
{
  ex::sender auto sndr = ex::just(42);
  auto env = ex::get_env(sndr);
}

出力

バージョン

言語

  • C++26

処理系

関連項目

参照