QtCreator с CMake, неверно проанализировал значение __cplusplus в редакторе - PullRequest
2 голосов
/ 03 мая 2019

У меня есть проект CMake, используемый в QtCreator с включенным C ++ 17.

Я могу без проблем компилировать и использовать функции C ++ 17. При печати значения __cplusplus я получаю 201703, но при наведении курсора на макрос в редакторе QtCreator отображается значение 1.

Из-за этого я не получаю никакого дополнения или выделения кода для каких-либо функций C ++ 11 (и более поздних версий). Это раздражает.

Стандартные заголовки, такие как <memory>, имеют несколько проверок, таких как:

#if __cplusplus >= 201103L
// unique_ptr and shared_ptr

Редактор отключает весь код под условием из-за неправильного значения __cplusplus.

Окружающая среда:

  • Fedora 29
  • CMake 3.12
  • GCC 8.3.1
  • QtCreator 4.7.2 (Qt 5.11.3)

Это известная проблема с проектами QtCreator и CMake? Есть ли обходные пути, чтобы заставить редактор QtCreator анализировать код с правильным значением __cplusplus, предоставленным CMake / GCC?

1 Ответ

0 голосов
/ 03 мая 2019

Кажется, что в QtCreator 4.7.2 есть ошибка, связанная с определением __cplusplus как 1.Обновление до 4.9.0 теперь корректно определяет __cplusplus как 201703 (для C ++ 17 проекта Cmake).

...