As far as I know, IntelliSense is fed from a different compiler frontend (based on the EDG frontent) than the one the Visual C++ compiler uses. Thus, it happens from time to time that there are discrepancies between what IntelliSense thinks is valid code and what the Visual C++ compiler will accept when your code is actually compiled. For example, when Visual C++ adds new, experimental features, IntelliSense will often not yet be updated to know about them and mark the corresponding code as erroneous. This also goes the other way, as the EDG frontend, at least historically, has had much better standard's conformance than Visual C++, so it can happen that IntelliSense will consider certain code valid while Visual C++, when you actually compile the code, complains (this has significantly improved over the last couple versions of Visual C++, though, one sees this happening less and less). On top of that, each of these frontends has their own separate set of bugs…
Most likely, what's happening with your structured bindings is that IntelliSense in the version of VS 2017 you're using simply doesn't support structured bindings yet. As far as I remember, that used to be an issue back when they introduced that feature in VS 2017 Update 3 (or around that time). You may want to consider updating your VS 2017 to a more recent version as I seem unable to reproduce this issue with current VS 2017 (version 15.9.11) here…