Ошибка при включении QtCore в файл, скомпилированный с clang [duplicate]

 db.getCollection('aj').find({"shapes.color":"red"},{"shapes.$":1})

OUTPUTS

{

   "shapes" : [ 
       {
           "shape" : "circle",
           "color" : "red"
       }
   ]
}
2
задан jww 26 November 2015 в 02:02
поделиться

4 ответа

Эта проблема разрешена в сообщении этого форума .

Это в основном проблема с вашей версией clang

1
ответ дан p.i.g. 22 August 2018 в 13:08
поделиться
1
ответ дан p.i.g. 5 November 2018 в 10:30
поделиться

В моем случае причиной той же ошибки было то, что имя макроса препроцессора в настройках целевой сборки содержало знак дефиса «-», что-то вроде этого TEST-DEBUG = 1.

Имена конфигурации конфигурации Xcode с дефисами ('-') вызывают сбои сборки модулей

1
ответ дан d.rozumeenko 22 August 2018 в 13:08
поделиться
#    if __has_extension(is_enum)
         ~~~~~~~~~~~~~~~^

Это языковое расширение Clang , называемое макросами проверки функции . Они долгое время были для Клана. GCC предоставил их, начиная с GCC 5.0, IIRC.

__has_extension можно проверить как макрос препроцессора. Итак, сначала вы проверяете наличие макроса, а затем проверяете эту функцию:

#if defined(__has_extension)
# if __has_extension(is_enum)
   ...
# endif
#endif

__has_extension(is_enum) должен находиться в отдельной строке.

Он работает для включения файлов. Из проекта Crypto ++ файл rdrand.cpp :

# include <immintrin.h> // rdrand, MSC, ICC, and GCC
# if defined(__has_include)
#  if __has_include(<x86intrin.h>)
#   include <x86intrin.h> // rdseed for some compilers, like GCC
#  endif
# endif
1
ответ дан jww 22 August 2018 в 13:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: