    std::allocator<T> a;
    test_max<T> (a.max_size() + 1);                // just barely too large
    test_max<T> (a.max_size() * 2);                // significantly too large
    test_max<T> (((size_t) -1) / sizeof(T) + 1);   // multiply will overflow
    test_max<T> ((size_t) -1);                     // way too large
}
