C ++ 11是否支持可变大小的数组?

我是C ++的新手,但我一直在研究,普遍的回答是:C ++ 11不支持可变大小的数组,因为数组大小需要为常量表达式。

但是,我已经在XCode 11(C ++ 11)上尝试了以下代码:

#include <iostream>

using namespace std;

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

    unsigned long arrayS;
    cin >> arrayS;

    bool a[arrayS];

    return 0;
}

而且完全可以。当我在

bool a[arrayS];

我可以看到数组a具有arrayS元素。我已经用

*(&a + 1) - a

它表明a中的元素数是arrayS。

c ++ 11是否支持可变大小的数组?还是仅因为我使用的编译器对我有用?

我问这个问题是因为我不确定我的朋友正在使用哪个编译器,并想将代码发送给他运行。

任何帮助深表感谢。