Skip to content

Commit

Permalink
Merge pull request #492 from sumomoneko/minmax-add-remarks
Browse files Browse the repository at this point in the history
minmaxの注記に、ダングリングが発生するケースを追加
  • Loading branch information
saki7 authored Dec 10, 2017
2 parents 8e2571d + 1fc1147 commit 3638143
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions reference/algorithm/minmax.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,24 @@ namespace std {
- 2値比較バージョンは1操作。
- `initializer_list`バージョンは高々`(3/2) * t.size()`回の述語適用。
## 備考
- (1), (2) : 引数に右辺値を与えた場合、`minmax`の呼び出しを含む式の評価が終わった時点で、返された参照はダングリングすることに注意:
```cpp example
#include <cassert>
#include <algorithm>
int main()
{
int x = 10;
auto result1 = std::minmax(x, 11); // typeof(result1) == std::pair<const int&, const int&>
assert(result1.first == 10); // ok: result1.first は xを参照している
assert(result1.second == 11); // 不定: result1.secondは 消失した右辺値を参照している
std::pair<int, int> result2 = std::minmax(x, 11);
assert(result2.first == 10); // ok: result2.first は xのコピーを持っている
assert(result2.second == 11); // ok: result2.second は 右辺値11のコピーを持っている
}
```

##
```cpp example
Expand Down

0 comments on commit 3638143

Please sign in to comment.