A recent MSVC work-around patch is eliciting unused variable
warnings from clang; package the lambda reference arguments
into a struct to avoid the warning.
I don't know whether this new patch still avoids the bugs in MSVC.
(Original work-around patch: https://reviews.llvm.org/D88504)