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

履歴 編集

class template
<execution>

std::execution::with-await-transform(C++26)

namespace std::execution {
  template<class T, class Promise>
  concept has-as-awaitable =  // exposition only
    requires (T&& t, Promise& p) {
      { std::forward<T>(t).as_awaitable(p) } -> is-awaitable<Promise&>;
    };

  template<class Derived>
  struct with-await-transform {  // exposition only
    template<class T>
    T&& await_transform(T&& value) noexcept {
      return std::forward<T>(value);
    }

    template<has-as-awaitable<Derived> T>
    decltype(auto) await_transform(T&& value)
      noexcept(noexcept(std::forward<T>(value).as_awaitable(declval<Derived&>())))
    {
      return std::forward<T>(value).as_awaitable(static_cast<Derived&>(*this));
    }
  };
}

概要

with-await-transformは、実行制御ライブラリの仕様定義で用いられる説明専用のクラステンプレートである。

バージョン

言語

  • C++26

関連項目

参照