
Some remarks and questions :
3) In general box aims to be as simple as possible, sticking with fixed size containers and no container copying. Then why not enforcing this by having the size passed as a template parameters ?
A) Allocators are a complex and often misunderstood type, and it is not felt it makes things easier for users to give a different allocator to
vector as opposed to defining a new class. I don't think exposing such low level behavior (alloca calls and such) is a good call either. An allocator definition helper class is maybe best suited then. What if i want a std::list or some other complex data structure using alloca ? I will still be forced to write an allocator and not using box.
In particular, getting correct behaviour for the copy constructors of the container is difficult, and it is not possible to give a correct definition of max_size, which is more important for small-sized containers. Why exactly ?