最終更新日時(UTC):
が更新

履歴 編集

type-alias
<iterator>

std::iter_difference_t(C++20)

namespace std {
  template<class I>
  using iter_difference_t = /*see below*/;
}

概要

任意のイテレータ型Iから、そのイテレータ間の差分(距離)を表す型(difference_type)を取得する。

効果

RI = remove_cvref_t<I>とすると、次のどちらか

備考

プログラム定義型ユーザー定義の任意のイテレータ型)でこの結果をカスタマイズするには、incrementable_traitsを特殊化する。

#include <iterator>
#include <vector>

int main() {
  using vec_iterator = std::vector<int>::iterator;
  using pointer = double*;

  static_assert(std::same_as<std::iter_difference_t<vec_iterator>, std::ptrdiff_t>);
  static_assert(std::same_as<std::iter_difference_t<pointer>     , std::ptrdiff_t>);
}

出力

バージョン

言語

  • C++20

処理系

関連項目

参照