Синтаксис С++ 14 в Eclipse CDT компилируется, но помечен как синтаксическая ошибка (indexer)
Eclipse CDT дает синтаксическую ошибку для действительного синтаксиса С++ 14.
Все компилируется и запускается, но подсветка синтаксиса нарушена.
У меня работает MinGW и Eclipse. Программа С++ 14 компилируется и выполняется, но я получаю неправильную подсветку синтаксиса/проверку синтаксиса.
Вот мой исходный код:
#include <iostream>
auto main() -> int
{
//Binary Literals C++14 with Digit separators C++14
auto seven = int{0b0000'0111};
std::cout << seven << std::endl;
std::cout << __cplusplus << std::endl;
return int{0};
}
И вот журнал вывода/сборки.
Вы можете увидеть настройки моего компилятора (-D__GXX_EXPERIMENTAL_CXX0X__ -O0 -g3 -Wall -c -fmessage-length=0 -std=c++14
) и выделение в нем.
![введите описание изображения здесь]()
Что мне нужно для настройки, так что синтаксический анализ позволяет использовать синтаксис С++ 14?
EDIT: похоже, что Indexer - правильная ставка - я не могу заставить Indexer работать по назначению.
В Windows 7 я использую MinGW.
Я открываю Провайдеры и нажимаю "Настройки встроенного компилятора CDT MinGW", где я добавляю -std=c++14
. Таким образом, вся строка ${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}" -std=c++14
после того, как я нажал применить, и я использую Project- > Index- > rebuild в надежде удалить мои ошибки. Ошибка синтаксиса сохраняется.
Это, по сути, то, что упоминается в часто задаваемые вопросы, чтобы распознать С++ 11 указателем.
У меня установлена последняя версия MinGW. Когда я вызываю g++ --version
, я получаю: g++ (GCC) 5.3.0
в качестве ответа. Нет руководства для 5.3, но я бы предположил, что большинство из 5.4 в основном применимо для моей версии.
Ответы
Ответ 1
Проблема заключается в том, что поддержка С++ 14 еще не добавлена.
Вот отчет об ошибках, который собирает все проблемы на С++ 14.
Это зависит от раздела, в котором перечислены другие отчеты об ошибках. Среди них ошибка 451086, которая специально упоминает Binary literals (N3472)
, Single-quotation-mark as digit separator (N3781)
.
Итак, кажется, что эта проблема известна и будет рассмотрена в какой-то момент в будущем.