Template:cpp/iterator/iter concept

Iterator concept determination
Definition of this concept is specified via an exposition-only alias template.

In order to determine, let denote  if the specialization  is generated from the primary template, or  otherwise:
 * If is valid and names a type,  denotes the type.
 * Otherwise, if is valid and names a type,  denotes the type.
 * Otherwise, if is generated from the primary template,  denotes std.
 * Otherwise, does not denote a type and results in a substitution failure.