g++ 中没有添加对指定初始化程序的支持有什么具体原因吗?是因为C99标准来得晚,g++开发得早,后来人们不关心这个问题,还是C++语法中实现指定初始化器有一些内在的困难?
最佳答案
我今天遇到了同样的问题。带有 -std=c++11 和 c++14 的 g++ 确实支持指定的初始化程序,但是如果您仍然可以得到编译错误“test.cxx:78:9: sorry, unimplemented: non-trivial specified initializers not supported”不要按照定义其成员的顺序初始化结构。举个例子
struct x
{
int a;
int b;
};
// This is correct
struct x x_1 = {.a = 1, .b = 2};
// This will fail to compile with error non-trivial designated initializer
struct x x_2 = {.b = 1, .a = 2};
关于c++ - 为什么指定的初始化程序没有在 g++ 中实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4900739/