diff --git a/reference/future/future/get.md b/reference/future/future/get.md index 5c2343a5c4..137c1f4033 100644 --- a/reference/future/future/get.md +++ b/reference/future/future/get.md @@ -29,6 +29,11 @@ void future::get(); 共有状態に例外が格納されていた場合、格納されている例外を送出する。 +## 事前条件 +- [`valid()`](valid.md) `== true` + - この条件を満たさなかった場合、処理系によっては[`future_error`](../future_error.md)例外を投げることがある。 + + ## 事後条件 この関数呼び出し後は共有状態が破棄され、[`valid()`](valid.md) `== false`となること。 diff --git a/reference/future/future/wait.md b/reference/future/future/wait.md index 43bf1d5ce3..397bb84366 100644 --- a/reference/future/future/wait.md +++ b/reference/future/future/wait.md @@ -21,6 +21,11 @@ void wait() const; なし +## 事前条件 +- [`valid()`](valid.md) `== true` + - この条件を満たさなかった場合、処理系によっては[`future_error`](../future_error.md)例外を投げることがある。 + + ## 例 ```cpp example #include diff --git a/reference/future/future/wait_for.md b/reference/future/future/wait_for.md index a2cc2921f5..f2dca8bbcd 100644 --- a/reference/future/future/wait_for.md +++ b/reference/future/future/wait_for.md @@ -29,6 +29,11 @@ future_status wait_for(const chrono::duration& rel_time) const; - C++14 : 時計クラス、[`time_point`](/reference/chrono/time_point.md)クラス、[`duration`](/reference/chrono/duration.md)クラスの構築が例外を送出する場合、この関数はそれらの例外を送出する。 +## 事前条件 +- [`valid()`](valid.md) `== true` + - この条件を満たさなかった場合、処理系によっては[`future_error`](../future_error.md)例外を投げることがある。 + + ## 例 ### 例1 ```cpp example @@ -100,14 +105,8 @@ int main() f.get(); // 一度値を取り出すと共有状態が破棄される - // 共有状態を持たない(valid() == falseな)futureでwaitをするとstd::future_error例外 - // ただし、libc++では(少なくとも19.1.0までは)SEGVするので注意 - try { - ready(); - } - catch(const std::future_error& e) { - std::cout << e.what() << std::endl; - } + // 共有状態を持たない(valid() == falseな)futureでwaitをするとUB + // ready(); } ``` * wait_for[color ff0000] @@ -116,13 +115,11 @@ int main() * std::future_status[link /reference/future/future_status.md] * f.get()[link /reference/future/shared_future/get.md] * valid()[link /reference/future/future/valid.md] -* std::future_error[link /reference/future/future_error.md] #### 出力例 ``` false true -std::future_error: No associated state ``` ## バージョン diff --git a/reference/future/future/wait_until.md b/reference/future/future/wait_until.md index 6a84f1213b..2d61fe9f28 100644 --- a/reference/future/future/wait_until.md +++ b/reference/future/future/wait_until.md @@ -34,6 +34,11 @@ future_status wait_until(const chrono::time_point& abs_time) co - C++14 : 時計クラス、[`time_point`](/reference/chrono/time_point.md)クラス、[`duration`](/reference/chrono/duration.md)クラスの構築が例外を送出する場合、この関数はそれらの例外を送出する。 +## 事前条件 +- [`valid()`](valid.md) `== true` + - この条件を満たさなかった場合、処理系によっては[`future_error`](../future_error.md)例外を投げることがある。 + + ## 例 ```cpp example #include