相关疑难解决方法(0)

灵活的数组成员在C++中是否有效?

在C99中,您可以声明结构的灵活数组成员:

struct blah
{
    int foo[];
};
Run Code Online (Sandbox Code Playgroud)

但是,当有人在这里工作时尝试使用C++中的clang编译一些代码时,该语法不起作用.(它一直在与MSVC合作.)我们不得不将其转换为:

struct blah
{
    int foo[0];
};
Run Code Online (Sandbox Code Playgroud)

通过C++标准,我发现根本没有提到灵活的成员数组; 我一直认为这[0]是一个无效的声明,但显然对于一个灵活的成员数组它是有效的.灵活的成员数组在C++中实际上是否有效?如果是这样,是正确的声明[]还是[0]

c++ flexible-array-member

36
推荐指数
3
解决办法
2万
查看次数

标签 统计

c++ ×1

flexible-array-member ×1