Я не знаю, почему происходит эта ошибка.
Я использую nghttp2 на Centos 7.
Мой Centos поддерживает C ++ 17
Я забыл какие-либо варианты?
Помоги мне, пожалуйста.
Спасибо.
USR / включать / C ++ / 4.8.2 / бит / C ++ 0x_warning.h: 32: 2: ошибка: #error Этот файл требует поддержки компилятора и библиотеки для стандарта ISO C ++ 2011. Эта поддержка в настоящее время является экспериментальной и должна быть включена с помощью опций компилятора -std = c ++ 11 или -std = gnu ++ 11. #error Этот файл требует поддержки компилятора и библиотеки для \ ^ В файле из util.h: 52: 0, от util.cc:25: template.h: 44: 19: предупреждение: шаблоны переменных доступны только с -std = c ++ 11 или -std = gnu ++ 11 [включено по умолчанию] шаблон <имя типа ... T> ^ template.h: 45: 1: ошибка: «constexpr’Не называет тип constexpr std :: array< ^ template.h: 45: 1: нота: C ++ 11 ‘constexprДоступны только с -std = c ++ 11 или -std = gnu ++ 11 template.h: 54: 33: ошибка: «constexpr’Не называет тип шаблон <имя T, size_t N> constexpr size_t array_size (T (&) [N]) { ^ template.h: 54: 33: нота: C ++ 11 ‘constexprДоступны только с -std = c ++ 11 или -std = gnu ++ 11 template.h: 58: 33: ошибка: «constexpr’Не называет тип шаблон <имя T, size_t N> constexpr size_t str_size (T (&) [N]) { ^ template.h: 58: 33: нота: C ++ 11 ‘constexprДоступны только с -std = c ++ 11 или -std = gnu ++ 11 template.h: 64: 31: предупреждение: шаблоны переменных доступны только с -std = c ++ 11 или -std = gnu ++ 11 [включено по умолчанию] шаблон <typename F, typename ... T> struct Defer { ^ template.h: 65: 11: ошибка: ожидается ‘,' или же '...' до '&&Знак Перенести (F &&ф, т &&... т) ^ template.h: 67: 15: ошибка: ожидается ‘,' или же '...' до '&&Знак Перенести (Defer &&o) noexcept: f (std :: move (o.f)) {} ^ template.h: 67: 18: ошибка: неверный конструктор; Вы, вероятно, имели в виду ‘nghttp2 :: Defer<F, T> (const nghttp2 :: Defer<F, T>&)» Перенести (Defer &&o) noexcept: f (std :: move (o.f)) {} ^ template.h: 67: 18: ошибка: ожидается ‘;В конце декларации члена template.h: 67: 20: ошибка: «noexcept’Не называет тип Перенести (Defer &&o) noexcept: f (std :: move (o.f)) {} ^ template.h: 70: 9: ошибка: ожидаемый спецификатор вложенного имени перед beforeResultType» используя ResultType = typename std :: result_of<typename std :: decay<F>::тип( ^ template.h: 70: 9: ошибка: использование-объявление для не члена в области видимости класса template.h: 70: 20: ошибка: ожидается ‘;' до 'знак равноЗнак используя ResultType = typename std :: result_of<typename std :: decay<F>::тип( ^ template.h: 70: 20: ошибка: ожидаемый безусловный идентификатор перед beforeзнак равноЗнак template.h: 72: 3: ошибка: «функцияВ пространстве именстанд’Не называет тип станд :: функция<ResultType ()> е; ^ template.h: В конструкторе ‘nghttp2 :: Defer<F, T>:: Defer (F)«: template.h: 66: 9: ошибка: учебный класс 'nghttp2 :: Defer<F, T>’Не имеет поля с именем‘е» : f (std :: bind (std :: forward)<F>(f), std :: forward<T>(т) ...)) {} ^ template.h: 66: 11: ошибка: «привязывать’Не является членом‘станд» : f (std :: bind (std :: forward)<F>(f), std :: forward<T>(т) ...)) {} ^ template.h: 66: 11: нота: предлагаемая альтернатива: В файле из /usr/include/netinet/in.h:24:0, от /usr/include/netdb.h:27, от util.h: 35, от util.cc:25: ...
я забыл какие-либо варианты?
Вы сделали, и компилятор скажет вам, что именно:
ошибка: #error Этот файл требует поддержки компилятора и библиотеки для стандарта ISO C ++ 2011. Эта поддержка в настоящее время экспериментальная, и должен быть включен с помощью параметров компилятора -std = c ++ 11 или -std = gnu ++ 11.
Вы, вероятно, используете действительно старый компилятор (тот, который поставляется с CentOS по умолчанию).
Вам необходимо установить Red Hat Developer Toolset, который предоставляет последние версии, см. https://www.softwarecollections.org/en/scls/rhscl/devtoolset-7/ Больше подробностей:
Developer Toolset предназначен для разработчиков, работающих на платформе CentOS или Red Hat Enterprise Linux. Он предоставляет текущие версии GNU Compiler Collection, GNU Debugger и другие инструменты разработки, отладки и мониторинга производительности.
Других решений пока нет …