My compiler (C++Builder6) syntactically allows array member initialization (at least with zero), but actually it doesn\'t really do it. So the assert in the example given be
I think you may use this:
TT() { std::fill(b, b + 8, char()); }
This way you will solve your problem while nothing is wrong with portability and standard conformance!
You may use fill_n like suggested in: C/C++ initialization of a normal array with one default value
If no fill_n is available, you can always use memset like:
TT() {memset(b, 0, sizeof b);}
I would like to append previous posts that if you are using a character array as a string then it is enough to write in the constructor
TT() { b[0] = '\0'; }