c++ - gcc 的扩展初始化程序列出了警告

标签 c++ gcc g++

gcc 将对以下示例代码发出警告:

struct someStruct {
    char c;
    int i;
};

int main() {
    someStruct s { 'a', 3 };

    return 0;
}

warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x

我想让我的代码与不支持 C++11 的旧编译器兼容。 现在,当我尝试使用 -std=c++98 甚至 -ansi -pedantic 编译它时,它仍然发出相同的警告并编译。

这是编译器错误还是我遗漏了什么?

最佳答案

您缺少一个 =:

someStruct s = { 'a', 3 };

关于c++ - gcc 的扩展初始化程序列出了警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11772560/

相关文章:

c++ - 如何定义一个以捕获为参数的 lambda 函数?

gcc - 从 LD 隐藏共享对象中的符号

c++ - Mavericks 的 g++ 编译问题

c++ - 求1到100素数的程序问题

c++ - 对 `main' 的 undefined reference ,当 main 存在时

linux - 如何编译旧版本的 gcc,比如 2.95.2?

c++ - GCC 和 Clang 都不会通过编译时已知的函数指针数组进行内联调用——为什么?

c++ - 为什么在不返回值的情况下从非 void 函数的末尾流出不会产生编译器错误?

c++ - 任何为 C++ 提供 betainv 的库

c++ - 是否有 STL 算法来查找序列中值的最后一个实例?