This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Removal of pre-ISO C++ items from include/backwards
On 26/10/2007, skaller <skaller@users.sourceforge.net> wrote:
> On Thu, 2007-10-25 at 22:56 +0100, Jonathan Wakely wrote:
> > The plan is to also move auto_ptr and the old bind1st/bind2nd function
> > binders to backward, if/when they are deprecated in C++0x, which would
> > give them the same status as <strstream> (deprecated in C++98)
>
> This would not be correct. When you deprecate C++2000 features,
> you should retain them in such a way that a compiler switch
> such as --std=C++2000 will ensure they're visible in the usual way.
So this doesn't go unchallenged and give people reading the archives
the wrong idea: that's exactly what Benjamin proposed. The link I
posted that you quoted in your reply said those features will only be
deprecated in C++0x mode. So in C++98 mode auto_ptr etc. will stay
exactly where they should be.
> The compiler is expected to conform to the specified standard
> and the standard libraries are an intrinsic part of the
> standard, and IMHO it would be good practice to allow
> 'strict' conformance to an older standard, whilst still
> rejecting 'never standardised' features.
Yes, that's the plan. Noone has suggested dropping support for
C++98/C++03 nor deprecating anything from those standards except in
C++0x mode.
> Might not auto_ptr etc go into a distinct c++2000 directory?
I don't think the libstdc++ maintainers have decided exactly how the
include directories will be structured when C++0x is finished and
fully-supported.
Bear in mind there is no <auto_ptr> header, so it's not as simple as
just moving individual headers. But this is a topic for another
thread.
Jon