[RFA] Status of HP/SGI extensions

Paolo Carlini pcarlini@unitus.it
Sun Dec 30 09:48:00 GMT 2001


Hi all,

this is a (probably incomplete) list of the extensions currently polluting
namespace std::

*stl_algobase.h: copy_n, lexicographical_compare_3way
*stl_function.h: identity_element, unary_compose, binary_compose, identity,
select1st, select2nd, project1st, project2nd, constant_void_fun,
constant_unary_fun, constant_binary_fun, constant0, constant1, constant2,
subtractive_rng
*stl_numeric.h: power, iota
*stl_tempbuf.h: temporary_buffer, get_temporary_buffer, return_temporary_buffer
*stl_tree.h: rb_tree
*stl_uninitialized.h: uninitialized_copy_n

Many of them can be rather easily moved (together with the respective helper
functions) to new files in include/ext, as we have already done for the
extensions inside stl_algo.h. I'm thinking for instance to rb_tree or to the
stl_tempbuf.h stuff. I'm planning to work on those in the next days.

However, as we have learned for stl_deque.h, but this is only an example, in
many circumstances the implementation of the standard library itself uses
internally the helper functions accompanying the extensions.

As pointed out by Gaby, it would be quite stupid to move the extensions together
with their helpers to separate files in namespace __gnu_cxx if then we have to
use the helpers to implement the standard library.

What about keeping the helpers (that is, from a practical point of view, those
names beginning with one or two underscores) insided namespace std, and
viceversa putting the extension themselves into separate files in namespace
__gnu_cxx?

Right now I don't have any better idea.

Cheers,
Paolo.




More information about the Libstdc++ mailing list