
AMDG Christian Schladetsch wrote:
The initial (and only, AFAIK) problem with the given proposal was that the following code asserted:
boost::monotonic::inline_storage<100*sizeof(int)> storage1; // create local storage on the stack boost::monotonic::vector<int> deathrow(storage1); // create a std::vector that uses this storage
for(int i = 0; i < 100; ++i) deathrow.push_back(i);
I offered to get back to the list when I had looked at it. I am doing so now. The `problem` is that std::vector allocates more than it needs, as you add to it. So while it may seem fine to allocate space for 100 ints, then make a monotonic::vector<int> and add 100 ints to it, it will fail to allocate the required excessively sized buffer.
The `fix` in this case is to simply give it a larger buffer. This has no impact on the utility of the proposed librrary.
It worries me that there is no guaranteed way to know how large a buffer is large enough. In Christ, Steven Watanabe