最終更新日時: 2024年06月11日 22時45分38秒 (JST)
Akira Takahashi が更新

履歴 編集

function template
<iterator>

# std::make_reverse_iterator(C++14)

    namespace std {
      template <class Iterator>
      reverse_iterator<Iterator>
        make_reverse_iterator(Iterator i); // C++14

      template <class Iterator>
      constexpr reverse_iterator<Iterator>
        make_reverse_iterator(Iterator i); // C++17
    }

## 概要

`reverse_iterator`オブジェクトを作るヘルパ関数

## 戻り値

    reverse_iterator<Iterator>(i)

## 例

    #include <iostream>
    #include <iterator>
    #include <algorithm>

    int main()
    {
      int ar[] = {1, 2, 3};

      std::for_each(
        std::make_reverse_iterator(ar + 3),
        std::make_reverse_iterator(ar),
        [](int x) {
          std::cout << x << std::endl;
        }
      );
    }

### 出力

    3
    2
    1

## バージョン

### 言語

- C++14

### 処理系

- Clang: 3.5 ✅
- GCC: 5.0 ✅
- ICC: ??
- Visual C++: ??

## 参照

- LWG Issue 2285. `make_reverse_iterator`
- P0031R0 A Proposal to Add Constexpr Modifiers to `reverse_iterator`, `move_iterator`, `array` and Range Access