我可以投票给VLA吗?

时间:2016-09-23 10:51:24

标签: c++ language-lawyer variable-length-array

我知道变量数组长度是编译器的扩展名,但是我允许转换为VLA吗?

下一个示例使用下一个命令编译好:

g++ -Wall -Wextra cast.cpp  -ansi

代码如下:

#include <iostream>


struct A
{
    int p;
    char l;
};

int main( int argc, char* argv[] )
{
    (void)argv;

    const int length = argc;

    void* msg = new int[ length ];

    A (&arr)[ length ] = reinterpret_cast< A (&)[ length ] >( msg );


    std::cout << arr[3].p << std::endl;
}

我最感兴趣的是c ++ 03,还有更新的c ++标准。

Gcc版本:

g++ --version
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609

0 个答案:

没有答案