
On Tue, Oct 11, 2011 at 8:11 PM, Jeffrey Lee Hellrung, Jr. < jeffrey.hellrung@gmail.com> wrote:
I'm presently against any throwing behavior related to resizing of a StaticVector/static_vector, since one can usually easily check the relevant preconditions themselves. Just assert. For those who want defined behavior in resize overflow (or underflow) situations, I'd say derive or wrap. Some kind of policy template parameter could be possible, but right now it feels like that's an unnecessary complication on an otherwise relatively simple data structure.
That's not to say I can't be dissuaded from this opinion.
My stance is that push_back, for instance, should throw if it goes beyond capacity. This is primarily for consistency with other containers. I would say, if it proves useful, to have a non-throwing version by a different name in addition to push_back that has undefined behavior when going beyond the capacity. This would be similar to how vectors have both the operator [] overload and the "at" member function. -- -Matt Calabrese