Изменения автоматического форматирования>> >>

У меня проблема с расширением C++ VScode. Всякий раз, когда я определяю матрицу, состоящую из векторов, таких как vector<vector<int> > и использую автоформат, он меняет код на vector<vector<int>> что приводит к ошибке компилятора.

Есть ли какие-либо решения?

Ответы

Ответ 1

Расширение VSCode C++ использует формат clang для форматирования документа. Если вы застряли со старым компилятором, который не поддерживает C++ 11, просто добавьте файл .clang-формата в рабочее пространство со следующей строкой:

Standard : Cpp03

Дополнительные параметры форматирования см. В следующей ссылке: https://clang.llvm.org/docs/ClangFormatStyleOptions.html

Ответ 2

Ошибка компилятора заключается в том, что >> интерпретируется как оператор сдвига справа вместо двух последовательных разделителей списков шаблонов шаблонов. До С++ 11 это означало, что язык должен работать парсером. Однако в С++ 11 для предотвращения этого было добавлено исключение. См. Этот ответ для получения дополнительной информации.

Лучшим решением будет обновление вашего компилятора до С++ 11 или более поздней версии.