我不知道为什么会出现这个错误。
我在centos 7上使用nghttp2。
我的centos支持c++17
我忘记了任何选项吗?
请帮帮我。
谢谢你。
usr/include/c++/4.8.2/bits/c++0x_warning.h:32:2: error: #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: 错误: '<b>constexpr' 没有命名类型
constexpr std::array<
^
template.h:45:1: 注意: C++11 '<b>constexpr' 仅适用于 -std=c++11 或 -std=gnu++11
template.h:54:33: error: ' <b>constexpr' 没有命名类型
模板 <typename T, size_t N> constexpr size_t array_size(T (&)[N]) {
^
template.h:54:33: 注意: C++11 '<b>constexpr' 仅适用于 -std=c++11 或 -std=gnu++11
template.h:58:33: error: ' <b>constexpr' 没有命名类型
模板 <typename T, size_t N> constexpr size_t str_size(T (&)[N]) {
^
template.h:58:33: 注意: C++11 '<b>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: 错误:在 '<b>&&' 标记之前需要 '<b>,' 或 '<b>...'
推迟(F &&f, T &&... t)
^
template.h:67:15: 错误: '<b>,' 或 '<b>...' 在 '<b>&&' 标记之前
Defer(Defer &&o) noexcept : f(std::move(of)) {}
^
template.h:67:18: 错误:无效的构造函数;你的意思可能是'<b>nghttp2::Defer<F, T> (const nghttp2::Defer<F, T>&)'
Defer(Defer &&o) noexcept : f(std::move(of)) {}
^
template.h:67:18: 错误:预期 '<b>;' 在成员声明
template.h:67:20 结束时: 错误: '<b>noexcept' 没有命名类型
Defer(Defer &&o) noexcept : f(std::move(of)) {}
^
template.h:70:9: 错误: '<b>ResultType' 之前的预期嵌套名称说明符
使用 ResultType = typename std::result_of<typename std::decay<F>::type(
^
template.h:70:9: error: using-declaration for non-member at class scope
template.h:70:20: error: expected '<b>;' 在 '<b>=' 标记之前
使用 ResultType = typename std::result_of<typename std::decay<F>::type(
^
template.h:70:20: 错误: '<b>=' 标记
template.h:72:3: 错误:名称空间'<b>std' 中的'<b>function' 没有命名一种
std::function<ResultType()> f;
^
template.h:在构造函数'<b>nghttp2::Defer<F, T>::Defer(F)':
template.h:66:9: error: class '<b>nghttp2::Defer<F, T>' 没有任何名为 '<b>f' 的字段
: f(std::bind(std::forward<F>(f), std::forward<T>(t)...)) {}
^
template.h:66:11: 错误: '<b>bind' 不是 '<b>std' 的成员
: f(std::bind(std::forward<F>(f), std::forward<T>(t)...)) {}
^
template.h:66:11: 注意:建议的替代方案:
在/usr/include/netinet/in.h:24:0包含的文件中,
从/usr/include/netdb.h:27,
从util.h:35,
来自util.cc:25:
...