# ParallelForIndex

[req.parallel_for_index]

A type Index satisfies ParallelForIndex if it meets the following requirements:

ParallelForIndex Requirements: Pseudo-Signature, Semantics

Index::Index(int)

  Constructor from an `int` value.

Index::Index(const Index&)

  Copy constructor.

Index::~Index()

  Destructor.

Index &operator=(const Index&)

  Assignment.

Index &operator++()

  Adjust `*this` to the next value.

bool operator<(const Index &i, const Index &j)

  Value of i precedes value of j.

bool operator<=(const Index &i, const Index &j)

  Value of i precedes or equal to the value of j.

D operator-(const Index &i, const Index &j)

  Number of values in range `[i,j)`.

Index operator+(const Index &i, const Index &j)

  Sum of i and j values.

Index operator+(const Index &i, D k)

  k-th value after i.

Index operator*(const Index &i, const Index &j)

  Multiplication of i and j values.

Index operator/(const Index &i, const Index &j)

  Quotient of i and j values.

`D` is the type of the expression `j-i`. It can be any integral type that is convertible to `size_t`. Examples that model the Index requirements are integral types and pointers.

_NOTE:_ It is recommended to use integral types as `ParallelForIndex`. See the `[basic.fundamental]` section of the ISO C++ Standard for information about integral types.

See also:

- parallel_for algorithm