<div dir="ltr">In several files in libcxx the templates have argument lists where the parameter pack is not last.  For example:<div><br></div><div><tuple></div><div><br></div><div><div>    template <class _Alloc, class ..._Up,</div><div>              class = typename enable_if</div></div><div>    ...[snip]...</div><div>    tuple(allocator_arg_t, const _Alloc& __a, _Up&&... __u)<br></div><div><br></div><div>or the many declarations of __invoke in <type_traits>.</div><div><br></div><div>I was under the impression that this wasn't valid syntax, i.e. that the parameter pack should be the final argument.  Can someone enlighten me here?  If I'm wrong then just point me at the correct source.</div><div><br></div><div>The reason I'm looking at this is I'm trying to compile with MSVC and it really hates certain headers.  The errors are cryptic at best but seem to originate from having args after the pack.</div><div><br></div><div>Thanks</div></div>