Variadic Intrinsics (The GNU D Compiler)

#### 2.5.4 Variadic Intrinsics ¶

The following functions are a collection of variadic intrinsics, available by importing the `core.stdc.stdarg` module.

Template: `void` core.stdc.stdarg.va_arg `(T)(ref va_list ap, ref T parmn)` ¶

  Retrieve and store in parmn the next value from the `va_list` ap that is of type `T`.

  This intrinsic is equivalent to writing the following:

      parmn = __builtin_va_arg (ap, T);

Template: `T` core.stdc.stdarg.va_arg `(T)(ref va_list ap)` ¶

  Retrieve and return the next value from the `va_list` ap that is of type `T`.

  This intrinsic is equivalent to writing the following:

      result = __builtin_va_arg (ap, T);

Function: `void` core.stdc.stdarg.va_copy `(out va_list dest, va_list src)` ¶

  Make a copy of src in its current state and store to dest.

  This intrinsic is the same as the GCC built-in function `__builtin_va_copy`.

Function: `void` core.stdc.stdarg.va_end `(va_list ap)` ¶

  Destroy ap so that it is no longer useable.

  This intrinsic is the same as the GCC built-in function `__builtin_va_end`.

Template: `void` core.stdc.stdarg.va_start `(T)(out va_list ap, ref T parmn)` ¶

  Initialize ap so that it can be used to access the variable arguments that follow the named argument parmn.

  This intrinsic is the same as the GCC built-in function `__builtin_va_start`.