[cfe-dev] POD struct

Guillaume Marcais guillaume.marcais at marcais.net
Tue Apr 10 17:37:27 PDT 2012

The following simple program creates a variable length array of structures:

//template<typename T>
class Test {
  struct toto {
    int* x;

  void method(int nb) {
    toto ary[nb];
    for(int i = 0; i < nb; ++i)
      ary[i].x = 0;

int main(int argc, char* argv[]) {
  //Test<char> t;
  Test t;

  return 0;

In compiles properly as written with clang++ (version 3.0). When
uncommeting the templated version, then the compiler complains:

POD.cc:9:13: error: variable length array of non-POD element type
    toto ary[nb];

It does not seem right. 'struct toto' still looks like a POD. Why
isn't it one anymore?

As a side note, g++ compiles this code without complaining.

Thank you for your time,

More information about the cfe-dev mailing list