Как обнулить элементы массива, когда мой компилятор не соответствует стандарту

Мой компилятор (C ++ Builder6) синтаксически разрешает инициализацию членов массива (по крайней мере, с нуля), но на самом деле это не такЯ действительно так делаю. Таким образом, утверждение в приведенном ниже примере не выполняется в зависимости от контекста.

#include 

struct TT {
    char b[8];
    TT(): b() {}
};

void testIt() {
    TT t;
    assert(t.b[7] == 0);
}

Изменение компилятора нет вариант в данный момент. У меня вопрос: какой будет лучший способ "ремонт" этот недостаток в отношении будущей мобильности и соответствия стандарту?

Редактировать: Как оказалось, мойпервый пример былослишком коротко, Он упустил момент, что уровень заполнения массива настолько важен, что его нужно хранить очень близко к массиву, то есть: в том же классе.

Даже еслиоригинальная проблема остаетсяМоя настоящая проблема обычно такова:

struct TT2 {
    int size;
    char data[8];
    // ... some more elements
    TT2(): size(0), data() {}
    // ... some more methods
};

Ответы на вопрос(3)

Ваш ответ на вопрос