Skip to content

Commit deaaa16

Browse files
committed
execution: get_forward_progress_guarantee (#1384)
1 parent 5907be1 commit deaaa16

9 files changed

+110
-11
lines changed

reference/execution/execution.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ namespace std::execution {
4242
| [`execution::get_domain`](execution/get_domain.md) | 実行ドメイン取得のクエリオブジェクト (customization point object) | C++26 |
4343
| [`execution::get_scheduler`](execution/get_scheduler.md) | Scheduler取得のクエリオブジェクト (customization point object) | C++26 |
4444
| [`execution::get_delegation_scheduler`](execution/get_delegation_scheduler.md) | 委任Scheduler取得のクエリオブジェクト (customization point object) | C++26 |
45-
| [`execution::forward_progress_guarantee`](execution/forward_progress_guarantee.md.nolink) | 前方進行保証 (enum) | C++26 |
46-
| [`execution::get_forward_progress_guarantee`](execution/get_forward_progress_guarantee.md.nolink) | 前方進行保証取得のクエリオブジェクト (customization point object) | C++26 |
45+
| [`execution::forward_progress_guarantee`](execution/forward_progress_guarantee.md) | 前方進行保証 (enum) | C++26 |
46+
| [`execution::get_forward_progress_guarantee`](execution/get_forward_progress_guarantee.md) | 前方進行保証取得のクエリオブジェクト (customization point object) | C++26 |
4747
| [`execution::get_completion_scheduler`](execution/get_completion_scheduler.md) | 完了Scheduler取得のクエリオブジェクト (customization point object) | C++26 |
4848
| [`execution::get_env`](execution/get_env.md) | 環境取得のクエリオブジェクト (customization point object) | C++26 |
4949
| [`execution::env_of_t`](execution/env_of_t.md) | 指定型から環境型を取得 (alias template) | C++26 |
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# forward_progress_guarantee
2+
* execution[meta header]
3+
* std::execution[meta namespace]
4+
* enum[meta id-type]
5+
* cpp26[meta cpp]
6+
7+
```cpp
8+
namespace std::execution {
9+
enum class forward_progress_guarantee {
10+
concurrent,
11+
parallel,
12+
weakly_parallel
13+
};
14+
}
15+
```
16+
17+
## 概要
18+
[Scheduler](scheduler.md)に関連付けられた実行リソースに属する実行エージェントの、前方進行保証(forward progress guarantees)レベルを表現する列挙型。
19+
20+
| 列挙子 | 前方進行保証レベル |
21+
|----|----|
22+
| `concurrent` | 全ての実行エージェントが並行前方進行保証(concurrent forward progress guarantees)を提供する |
23+
| `parallel` | 全ての実行エージェントが少なくとも並列前方進行保証(parallel forward progress guarantees)を提供する |
24+
| `weakly_parallel` | 弱い並列前方進行保証(weakly parallel forward progress guarantees)となる |
25+
26+
`concurrent`が最も強い前方進行保証を与え、`parallel`、`weakly_parallel`の順に前方進行保証が弱くなる。
27+
28+
29+
## バージョン
30+
### 言語
31+
- C++26
32+
33+
### 処理系
34+
- [Clang](/implementation.md#clang): ??
35+
- [GCC](/implementation.md#gcc): ??
36+
- [ICC](/implementation.md#icc): ??
37+
- [Visual C++](/implementation.md#visual_cpp): ??
38+
39+
40+
## 関連項目
41+
- [`execution::get_forward_progress_guarantee`](get_forward_progress_guarantee.md)
42+
43+
44+
## 参照
45+
- [P2300R10 `std::execution`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2300r10.html)

reference/execution/execution/get_delegation_scheduler.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
```cpp
88
namespace std::execution {
99
struct get_delegation_scheduler_t { unspecified };
10-
constexpr get_delegation_scheduler_t get_delegation_scheduler{};
10+
inline constexpr get_delegation_scheduler_t get_delegation_scheduler{};
1111
}
1212
```
1313
* unspecified[italic]
@@ -45,7 +45,7 @@ const修飾[クエリ可能オブジェクト](../queryable.md)`cenv`に対し
4545
4646
4747
## 関連項目
48-
- [`scheduler`](scheduler.md)
48+
- [`execution::scheduler`](scheduler.md)
4949
5050
5151
## 参照

reference/execution/execution/get_domain.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
```cpp
88
namespace std::execution {
99
struct get_domain_t { unspecified };
10-
constexpr get_domain_t get_domain{};
10+
inline constexpr get_domain_t get_domain{};
1111
}
1212
```
1313
* unspecified[italic]
@@ -45,7 +45,7 @@ const修飾[クエリ可能オブジェクト](../queryable.md)`cenv`に対し
4545
4646
4747
## 関連項目
48-
- [`default_domain`](default_domain.md)
48+
- [`execution::default_domain`](default_domain.md)
4949
5050
5151
## 参照
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# get_forward_progress_guarantee
2+
* execution[meta header]
3+
* cpo[meta id-type]
4+
* std::execution[meta namespace]
5+
* cpp26[meta cpp]
6+
7+
```cpp
8+
namespace std::execution {
9+
struct get_forward_progress_guarantee_t { unspecified };
10+
inline constexpr get_forward_progress_guarantee_t get_forward_progress_guarantee{};
11+
}
12+
```
13+
* unspecified[italic]
14+
15+
## 概要
16+
`get_forward_progress_guarantee_t`は、[Scheduler](scheduler.md)に関連付けられた実行リソースによる実行エージェントの前方進行保証を取得する[クエリオブジェクト](../queryable.md)である。
17+
18+
19+
## 効果
20+
説明用の変数`sch`に対して、型`Sch`を`decltype((sch))`とする。`Sch`が[`scheduler`](scheduler.md)を満たさないとき、`get_forward_progress_guarantee`は不適格となる。
21+
22+
そうでなければ、呼び出し式`get_forward_progress_guarantee(sch)`は下記と等価であり、[`forward_progress_guarantee`](forward_progress_guarantee.md)列挙型の値となる。
23+
24+
- 引数`sch`がconst修飾された`csch`を用いて、適格であるならば式`cenv.query(get_forward_progress_guarantee)`
25+
- そうでなければ、[`forward_progress_guarantee::weakly_parallel`](forward_progress_guarantee.md)
26+
27+
28+
## 例外
29+
投げない
30+
31+
32+
## カスタマイゼーションポイント
33+
const修飾[Scheduler](scheduler.md)`sch`に対して式`csch.query(get_forward_progress_guarantee)`が呼び出される。
34+
このとき、`noexcept(csch.query(get_forward_progress_guarantee)) == true`であること。
35+
36+
37+
## バージョン
38+
### 言語
39+
- C++26
40+
41+
### 処理系
42+
- [Clang](/implementation.md#clang): ??
43+
- [GCC](/implementation.md#gcc): ??
44+
- [ICC](/implementation.md#icc): ??
45+
- [Visual C++](/implementation.md#visual_cpp): ??
46+
47+
48+
## 関連項目
49+
- [`execution::scheduler`](scheduler.md)
50+
- [`execution::forward_progress_guarantee`](forward_progress_guarantee.md)
51+
52+
53+
## 参照
54+
- [P2300R10 `std::execution`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2300r10.html)

reference/execution/execution/get_scheduler.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
```cpp
88
namespace std::execution {
99
struct get_scheduler { unspecified };
10-
constexpr get_scheduler_t get_scheduler{};
10+
inline constexpr get_scheduler_t get_scheduler{};
1111
}
1212
```
1313
* unspecified[italic]
@@ -45,7 +45,7 @@ const修飾[クエリ可能オブジェクト](../queryable.md)`cenv`に対し
4545
4646
4747
## 関連項目
48-
- [`scheduler`](scheduler.md)
48+
- [`execution::scheduler`](scheduler.md)
4949
5050
5151
## 参照

reference/execution/forwarding-query.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace std {
2222
2323
2424
## 関連項目
25-
- [`forwarding_query`](forwarding_query.md)
25+
- [`execution::forwarding_query`](forwarding_query.md)
2626
2727
2828
## 参照

reference/execution/get_allocator.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
```cpp
88
namespace std {
99
struct get_allocator_t { unspecified };
10-
constexpr get_allocator_t get_allocator{};
10+
inline constexpr get_allocator_t get_allocator{};
1111
}
1212
```
1313
* unspecified[italic]

reference/execution/get_stop_token.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
```cpp
88
namespace std {
99
struct get_stop_token_t { unspecified };
10-
constexpr get_stop_token_t get_stop_token{};
10+
inline constexpr get_stop_token_t get_stop_token{};
1111
}
1212
```
1313
* unspecified[italic]

0 commit comments

Comments
 (0)