Dbstl known issues

Three algorithm functions of gcc's C++ STL test suite do not work with dbstl. They are find_end(), inplace_merge() and stable_sort().

The reason for the incompatibility of find_end() is that it assumes the data an iterator refers to is located at a shared place (owned by its container). This assumption is not correct in that it is part of the C++ STL standards specification. However, this assumption can not be true for dbstl because each dbstl container iterator caches its referenced value.

Consequently, please do not use find_end() for dbstl container iterators if you are using gcc's STL library.

The reason for the incompatibility with inplace_merge() and stable_sort() is that their implementation in gcc requires the value_type for a container to be default constructible. This requirement is not a part of the the C++ STL standard specification. Dbstl's value type wrappers (such as ElementHolder) do not support it.

These issues do not exist for any function available with the Microsoft Visual C++ STL library.