Насколько я знаю, IntelliSense подается из внешнего интерфейса компилятора (на основе EDG ), чем тот, который использует компилятор Visual C ++.Таким образом, время от времени случаются расхождения между тем, что IntelliSense считает допустимым кодом, и тем, что компилятор Visual C ++ примет, когда ваш код фактически скомпилирован.Например, когда Visual C ++ добавляет новые экспериментальные функции, IntelliSense часто еще не обновляется, чтобы узнать о них и пометить соответствующий код как ошибочный.Это также идет другим путем , так как интерфейс EDG, по крайней мере исторически, имел гораздо лучшее соответствие стандарту, чем Visual C ++, поэтому может случиться, что IntelliSense сочтет определенный код допустимым, тогда как Visual C ++, когда вы на самом делекомпилирует код, жалуется (это значительно улучшилось по сравнению с последними двумя версиями Visual C ++, хотя, как видно, это происходит все реже и реже).Кроме того, у каждого из этих интерфейсов есть свой собственный набор ошибок…
Скорее всего, что происходит с вашими структурированными привязками, так это то, что IntelliSense в используемой версии VS 2017 просто не поддерживаетструктурированных привязок пока нет.Насколько я помню, это было проблемой, когда они вводили эту функцию в VS 2017 Update 3 (или примерно в то же время).Возможно, вы захотите обновить вашу VS 2017 до более поздней версии, поскольку я не могу воспроизвести эту проблему с текущей VS 2017 (версия 15.9.11) здесь…