Hi! Jens Vollinga wrote:
Why is patch 3 binary compatible? Doesn't the name container[_without_allocater] appear mangled in the ABI?
The name container<T> does indeed appear in the symbols. However, there is no change to the functions that take a container<T> as one of the arguments, the type is the same. The name container_without_allocator<T> does not appear because it wouldn't be used in any of the existing functions (yet?). It may be surprising, but I've actually checked it: the set of text symbols provided by the library is not changed by either patch 1 or 3.
Although it may appear confusing I am inclined to check in patch 3 to the 1.3-branch and patch 2 to HEAD. I'm going to do that within a few days unless somebody raises objections.
Why do you think patch 3 is superior to patch 1? (Just) Consistent naming?
I think that patch 2 is superior to patch 1: <http://www.ginac.de/pipermail/ginac-devel/2006-April/000950.html>. Also, patch 2 is superior to patch 3. But patch 2 can only go into HEAD, not into the branch. I'm not so sure whether patch 3 is really superior to patch 1, but I thought that if patch 2 is going into HEAD, then patch 3 would be more appropiate for the branch because of reasons of symmetry. On another note: I'm just thinking that some of the code duplication can be avoided by deriving both classes from a common base basic_container that brings with it most of the implementation. Cheers -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>