Os membros flexíveis da matriz são válidos em C ++?

Em C99, você pode declarar um membro flexível da matriz de uma estrutura como:

struct blah
{
    int foo[];
};

No entanto, quando alguém aqui no trabalho tentou compilar algum código usando clang em C ++, essa sintaxe não funcionou. (Ele estava trabalhando com o MSVC.) Tivemos que convertê-lo para:

struct blah
{
    int foo[0];
};

Examinando o padrão C ++, não encontrei nenhuma referência a matrizes de membros flexíveis; Eu sempre pensei[0] era uma declaração inválida, mas aparentemente para uma matriz de membros flexível ela é válida. As matrizes de membros flexíveis são realmente válidas em C ++? Se sim, é a declaração correta[] ou[0]?

questionAnswers(6)

yourAnswerToTheQuestion