Hi, On Fri, 9 Aug 2019, Martin Sebor wrote:
> The solution introduced in C99 is a flexible array. C++ > compilers usually support it as well. Those that don't are > likely to support the zero-length array (even Visual C++ does). > If there's a chance that some don't support either do you really > think it's safe to assume they will do something sane with > the [1] hack? As the [1] "hack" is the traditional pre-C99 (and C++) idiom to implement flexible trailing char arrays, yes, I do expect all existing (and not any more existing) compilers to do the obvious and sane thing with it. IOW: it's more portable in practice than our documented zero-length extension. And that's what matters for the things compiled by the host compiler. Without requiring C99 (which would be a different discussion) and a non-existing C++ standard we can't write this code (in this form) in a standard conforming way, no matter what we wish for. Hence it seems prudent to use the most portable variant of all the non-standard ways, the trailing [1] array. Ciao, Michael.