Skip to content

Commit

Permalink
shift_left/shift_rightで負数を指定可能と読める記述の修正
Browse files Browse the repository at this point in the history
  • Loading branch information
tshino committed Mar 13, 2023
1 parent a49ab65 commit 58c137d
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 8 deletions.
4 changes: 2 additions & 2 deletions reference/algorithm/ranges_shift_left.md
Expand Up @@ -45,7 +45,7 @@ namespace std::ranges {
## 効果
- `n <= 0`である場合、なにもしない
- `n == 0`である場合、なにもしない
- `n >= last - first`である場合、なにもしない
- `i < (last - first) - n`である非負の各`i`について、`first + n + i`位置の要素を`first + i`位置にムーブする
- (1)では、`i = 0`から`i = (last - first) - n - 1`の順に処理する
Expand All @@ -65,7 +65,7 @@ namespace std::ranges {
## 備考
- シフト数として負数を指定するとなにも起こらないが、この関数には符号付き整数型を指定することとなっている。これは、Bidirectional Iterator向けの最適化した実装をする場合に[`std::prev()`](/reference/iterator/prev.md)関数を使用するため、そちらのパラメータ型と合わせたことによる
- シフト数として負数を指定することはできないが、この関数には符号付き整数型を指定することとなっている。これは、Bidirectional Iterator向けの最適化した実装をする場合に[`std::prev()`](/reference/iterator/prev.md)関数を使用するため、そちらのパラメータ型と合わせたことによる
- `shift_left()`と[`shift_right()`](ranges_shift_right.md)で関数が分かれているのは、コンパイルしたコードサイズを小さくするためと、左シフトと右シフトでは最大パフォーマンスのための実装が異なるためである
Expand Down
4 changes: 2 additions & 2 deletions reference/algorithm/ranges_shift_right.md
Expand Up @@ -46,7 +46,7 @@ namespace std::ranges {
## 効果
- `n <= 0`である場合、なにもしない
- `n == 0`である場合、なにもしない
- `n >= last - first`である場合、なにもしない
- `i < (last - first) - n`である非負の各`i`について、`first + i`位置の要素を`first + n + i`位置にムーブする
- (1)では、`I`型が[`bidirectional_iterator`](/reference/iterator/bidirectional_iterator.md)のモデルとなる場合は、`i = (last - first) - n - 1`から`i = 0`の順に処理する
Expand All @@ -66,7 +66,7 @@ namespace std::ranges {
## 備考
- シフト数として負数を指定するとなにも起こらないが、この関数には符号付き整数型を指定することとなっている。これは、Bidirectional Iterator向けの最適化した実装をする場合に[`std::prev()`](/reference/iterator/prev.md)関数を使用するため、そちらのパラメータ型と合わせたことによる
- シフト数として負数を指定することはできないが、この関数には符号付き整数型を指定することとなっている。これは、Bidirectional Iterator向けの最適化した実装をする場合に[`std::prev()`](/reference/iterator/prev.md)関数を使用するため、そちらのパラメータ型と合わせたことによる
- [`shift_left()`](ranges_shift_left.md)と`shift_right()`で関数が分かれているのは、コンパイルしたコードサイズを小さくするためと、左シフトと右シフトでは最大パフォーマンスのための実装が異なるためである
Expand Down
8 changes: 6 additions & 2 deletions reference/algorithm/shift_left.md
Expand Up @@ -34,8 +34,12 @@ namespace std {
- `*first`の型が[ムーブ代入可能](/reference/type_traits/is_move_assignable.md)であること
## 事前条件
`n >= 0`
## 効果
- `n <= 0`である場合、なにもしない
- `n == 0`である場合、なにもしない
- `n >= last - first`である場合、なにもしない
- `i < (last - first) - n`である非負の各`i`について、`first + n + i`位置の要素を`first + i`位置にムーブする
- (1)では、`i = 0`から`i = (last - first) - n - 1`の順に処理する
Expand All @@ -52,7 +56,7 @@ namespace std {
## 備考
- シフト数として負数を指定するとなにも起こらないが、この関数には符号付き整数型を指定することとなっている。これは、Bidirectional Iterator向けの最適化した実装をする場合に[`std::prev()`](/reference/iterator/prev.md)関数を使用するため、そちらのパラメータ型と合わせたことによる
- シフト数として負数を指定することはできないが、この関数には符号付き整数型を指定することとなっている。これは、Bidirectional Iterator向けの最適化した実装をする場合に[`std::prev()`](/reference/iterator/prev.md)関数を使用するため、そちらのパラメータ型と合わせたことによる
- `shift_left()`と[`shift_right()`](shift_right.md)で関数が分かれているのは、コンパイルしたコードサイズを小さくするためと、左シフトと右シフトでは最大パフォーマンスのための実装が異なるためである
Expand Down
8 changes: 6 additions & 2 deletions reference/algorithm/shift_right.md
Expand Up @@ -35,8 +35,12 @@ namespace std {
- `ForwardIterator`型が、Bidirectional Iteratorの要件もしくは[ValueSwappable](/reference/concepts/ValueSwappable.md)の要件を満たすこと
## 事前条件
`n >= 0`
## 効果
- `n <= 0`である場合、なにもしない
- `n == 0`である場合、なにもしない
- `n >= last - first`である場合、なにもしない
- `i < (last - first) - n`である非負の各`i`について、`first + i`位置の要素を`first + n + i`位置にムーブする
- (1)では、`ForwardIterator`型がBidirectional Iteratorの要件を満たす場合は、`i = (last - first) - n - 1`から`i = 0`の順に処理する
Expand All @@ -53,7 +57,7 @@ namespace std {
## 備考
- シフト数として負数を指定するとなにも起こらないが、この関数には符号付き整数型を指定することとなっている。これは、Bidirectional Iterator向けの最適化した実装をする場合に[`std::prev()`](/reference/iterator/prev.md)関数を使用するため、そちらのパラメータ型と合わせたことによる
- シフト数として負数を指定することはできないが、この関数には符号付き整数型を指定することとなっている。これは、Bidirectional Iterator向けの最適化した実装をする場合に[`std::prev()`](/reference/iterator/prev.md)関数を使用するため、そちらのパラメータ型と合わせたことによる
- [`shift_left()`](shift_left.md)と`shift_right()`で関数が分かれているのは、コンパイルしたコードサイズを小さくするためと、左シフトと右シフトでは最大パフォーマンスのための実装が異なるためである
Expand Down

0 comments on commit 58c137d

Please sign in to comment.