This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [v3] deprecated ext/hash_map, ext/hash_set


"Benjamin Kosnik" <bkoz@redhat.com> writes:

| For my next couple tricks, I will be attempting to deprecate (in C++0x
| mode) auto_ptr, binder1st, and vector<bool>.

I believe we should exercise extra conservatism about those.

-- Gaby

Hi,


This may be slightly off-topic, but this thread raises some concerns. Since standard adoption isn't likely to happen overnight, I'd like to prepare code to be ready for upgrading. Having a typedef template mechanism for migration of class templates could be very helpful in 'porting' C++ STL code across the two C++ standards. Did typedef templates ever make it into C++0x? That last reference I could find to them (various proposals) is dated several years back, maybe I haven't looked hard enough?

I'm imagining user code like:

#include <header>
// something no longer in newer standard:
// template <typename T> class deprecated_class { ... };

#if CXX0X
// assuming the following is legal:
template <typename T> typedef deprecated_class<T> replacement_class;
#endif

// can continue using deprecated_class interface that's common
// to the replacement_class interface

The goal is to use the newer standard's replacement if detected (e.g. with autoconf), else fall back to the old class, but in user code, refer to one name only through the use of a conditionally defined typedef.

(thinking out loud)

Fang


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]