Пользовательский распределитель для std :: vector <char> игнорируется

Я пытался использовать пользовательский распределитель дляstd::vectorно я заметил чтоstd::vector не требует / не использует какие-либо функции-члены из моего распределителя. Как это возможно?

#include 

struct A : private std::allocator {
   typedef std::allocator alloc;
   using alloc::value_type;
   using alloc::pointer;
   using alloc::const_pointer;
   using alloc::difference_type;
   using alloc::size_type;
   using alloc::rebind;
   // member functions have been removed, since the program compiles without them
};

int main() {
    std::vector v;
    v.resize(4000);
    for (auto& c : v)
      if (c)
         return 1; // never happens in my environment
   return 0; // all elements initialized to 0. How is this possible?
}

Я пробовал вышеупомянутую программу с онлайн-компилятором C ++ 11 (LiveWorkSpace), предоставляя g ++ 4.7.2, 4.8 и 4.6.3.

В принципе , ,allocate()deallocate()construct() а такжеdestroy() не определены в моем распределителе, но программа компилируется, и все элементы будут инициализированы в 0.

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

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