Eclipse, NEON.1 4.6.1 с CDT 9.1.0, G ++ 5.4.0Eclipse, CDT NEON не распознает C++ 11/14 содержимого заголовка
Это не распознает все C++ 11/14 функций. Он распознает ключевые слова, такие как auto
и nullptr
. Однако он не распознает вещи, поступающие из заголовков, которые зависят от правильных символов.
Например, при включении <memory>
он распознает старые символы, такие как std::auto_ptr
не знал таких, как std::shared_ptr
. Эти новые функции находятся в пределах #if __cplusplus >= 201103L
.
Я могу заставить его работать для стандартного проекта затмения, установив опцию диалекта, но мне нужно, чтобы он работал с проектом на основе autotools, который не имеет диалектов.
У меня есть фактическая компиляция программы, использующей переменную automake AM_CXXFLAGS. Чтобы заставить его работать для индексатора, я пошел в eclipse в свойства Project> C/C++ General> Preprocessor Include Paths, макросы
Затем на вкладку провайдеров и добавлена опция -std = C++ 14 для команды для Встроенные настройки компилятора CDT GCC. Я также переместил этого провайдера в начало списка. На вкладке ввода вы можете увидеть фактическое значение определения __cplusplus. До того, как я добавил переключатель -std = C++ 14, он был ниже требуемого 201103L после того, как я добавил переключатель, который был намного выше.