cpp/iterator/common iterator/common iterator

Constructs a new iterator adaptor, effectively initializes the underlying member object  to hold an  (iterator) or  (sentinel) object.

@1@ Default constructor. Default-initializes. After construction, holds a value-initialized  object. Operations on the resulting iterator adaptor have defined behavior if and only if the corresponding operations on a value-initialized also have defined behavior.

@2@ After construction, holds an  object move-constructed from.

@3@ After construction, holds an  object move-constructed from.

@4@ After construction, holds an  or  object initialized from the  or  held by, if  holds that alternative, respectively. The behavior is undefined if is in an invalid state, that is,  is equal to.