v3.0.1
23 September 2014
Bugfix: fixed a couple of compiler warnings.
v3.0
28 May 2014
New feature: vecarray can now optionally hold more elements than its fixed sized array allows by using a std::vector internally.
v2.8
27 May 2014
Bugfix: fixed regression introduced in previous version.
v2.7
26 May 2014
Internal (minor refactor): changed names of private member functions and improved function dispatching using SFINAE.
v2.6
4 August 2013
optimization (minor): push_back() overflow check simplified.
v2.5
15 September 2011
Bugfix: fixed some compiler errors that VC++ did not pick up; now builds with g++ v4.5.3 with -std=c++0x compiler option.
v2.4.1
9 March 2011
Internal (minor refactor): improved quality of implementation of at() after code review.
v2.4
21 July 2010
New feature: added equality operators.
v2.3.1
15 July 2010
Internal: addition of "long long" to max_align union.
v2.3
21 January 2010
New feature: added reverse iterator support.
v2.2
11 December 2009
constructor which takes a count and value now has a default parameter for value.
v2.1
7 August 2009
replaced NO_VECARRAY_OVERFLOW_PREVENTION macro with a new check policy template parameter.
bugfix: exception safety improvements.
v2.0.1
11 February 2009
bugfix (minor): #include <tr1/type_traits> changed to #include <type_traits>.
v1.1.6
24 April 2008
changed VECARRAY_PREVENT_OVERFLOW #define to NO_VECARRAY_OVERFLOW_PREVENTION which is not defined.
v1.1.5
22 February 2008
added a resize() method
buffer should now be aligned properly (for the majority of cases) when placed on the stack (see http://www.gotw.ca/gotw/028.htm for how)
v1.1.3
21 November 2007
moved destruct(pointer) method from vecarray to vecarray_scalar_trait_impl
removed vecarray::destruct(pointer, pointer), now goes straight to vecarray_scalar_trait_impl::destruct(pointer, pointer)
v1.1.2
20 November 2007
added vecarray(size_type, parameter_type) constructor
optimization (minor): now only one call to end() in insert(iterator, const_iterator, const_iterator)
v1.1
18 November 2007
multiple changes, now compiles under g++
now resides under the default namespace "lib"
v1.0.16
17 November 2007
replaced #include <assert.h> with #include <cassert>
added #include <cstddef>
replaced size_t with std::size_t and ptrdiff_t with std::ptrdiff_t
removed construct(const_pointer, const_pointer, pointer) and now use std::uninitialized_copy instead
made scalar_trait_impl private
v1.0.13
15 November 2007
(cosmetic) removed legacy internal "VECARRAY_USE_STD" code from insert(iterator, const_iterator, const_iterator) method
v1.0.12
13 November 2007
added template swap() method
(cosmetic) changed "InputIterator" to "Integer" in dispatch_insert(..., std::tr1::true_type)
(cosmetic) changed occurrences of "traited" to "dispatch"
re-added template copy constructor and template assignment operator
made assignment operator and copy constructor non-templated
removed superfluous insert(iterator, const_iterator, size_type) method
copy constructor now takes templated source
bugfix: assignment operator now has scope unique template parameter names (compilation could have failed)
added assignment operator
added assign() methods
insert(iterator, InputIterator, InputIterator) method now behaves differently depending on is_integral(InputIterator) trait
made scalar trait variants of push_back() private and renamed to push_back_traited(...)
v1.0.4
12 November 2007
bugfix: remove() did not work correctly due to an iterator being erroneously incremented after calling erase() (could cause crash)
(cosmetic) replaced several calls to postfix increment/decrement operators with calls to prefix increment/decrement operators
bugfix: throw_out_of_range() and overflow_check() were not const methods, now const_iterator at() should compile.
v1.0.2
11 November 2007
removed push_front() and pop_front() methods as they are not O(1) complexity
v1.0.1
9 November 2007
added vecarray(InputIterator first, InputIterator last) constructor
(cosmetic) changed occurrences of "InIter" to "InputIterator"