MSVC tries to expand templates that are in the false-branch of a if constexpr construct. In this case, the condition checks whether a tuple has at least one element and then is trying to access it using std::get<0>, which fails when the tuple has 0 elements.
The workaround is to extract that case into a separate method.
This patch is part of the series to make flang compilable with MS Visual Studio http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html.