This happened on a small number of MSVC releases (19.31.31xxx, Visual Studio 2022 17.1.x), and worked fine on everything else.
The issue seemed to be related to return type deduction on a function with and if constexpr; the compiler got confused and deduced different function return type from the type of the return statement.
The workaround is to split get into two functions using enable_if.
Tuple index should be decremented, yes?