Использование `decltype` в коде IOKit

При компиляции расширения ядра на основе IOKit компилятор c ++ не может распознать ключевое слово decltype,

int f = 123;
int (*f_ptr)() = 0;

f_ptr =  (decltype(f_ptr)) f;

Сбой компилятора в приведенном выше коде по причине: Use of undeclared identifier 'decltype', auto Ключевое слово, с другой стороны, работает как ожидалось.

Однако, если я скомпилирую точно такой же код в приложении пользовательского режима на C ++, он будет работать нормально.

Любая идея, почему это?

2

Решение

decltype требуется поддержка C ++ 11. Посмотрите на свои проекты Настройки сборки и убедитесь, что Диалект C ++ по крайней мере ГНУ ++ 11 / C ++ 11 или позже (ищите опцию -std =)

auto с другой стороны, это старый спецификатор продолжительности хранения ключевое слово повторно используется в C ++ 11 [6].

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]