Developers who write compilers use the ArgIterator structure to enumerate the mandatory and optional arguments in an argument list. The ArgIterator structure is not generally useful for applications other than compilers.

The functionality in the ArgIterator structure is typically hidden in the syntax of a specific programming language. For example, in the C++ programming language you declare a variable-length argument list by specifying an ellipsis ("...") at the end of the argument list. The ArgIterator structure is useful primarily when a development language does not provide direct support for accessing variable-length parameters.