stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: Differences between tr1 and c++0x
Date Wed, 21 May 2008 19:16:02 GMT
Travis Vitek wrote:
>  
> 
> Martin Sebor wrote:
>> Travis Vitek wrote:
>>> As most of us know, I've been working on type_traits for the 4.3
>>> release. In doing so, I've noticed that there are some pretty
>>> significant differences between tr1 and c++0x. My question is what
>>> _exactly_ are we wanting to implement here? Do we want to 
>>> have the tr1 stuff as it is documented [in the tr1 final], or do
>>> we want the tr1 additions as they appear in the c++0x working
>>> draft?
>>>
>>> Some of the issues...
>>>
>>> 	1. The namespace that these features appear in [std::tr1 vs std]
>>>    2. Section numbers for test names [4.meta.rel.cpp vs
>>> 20.meta.rel.cpp]
>>> 	3. Subtle differences between behavior of traits
>>> 	4. Deprecated traits like add_reference [now
>>> add_lvalue_reference]
>>>
>>> I just want to make absolutely sure that I'm working with the same
>>> expectations as everyone else and that we are trying to implement the
>>> c++0x draft features that were introduced in tr1. I'm 
>> currently writing
>>> to the c++0x draft, but my tests use old section numbers from the tr1
>>> final, and everything I've written is currently in the std::tr1
>>> namespace [using a macro _TR1].
>> IMO, we should target C++ 0x and forget TR1 even exists ;-)
> 
> So no _TR1 macro, no std::tr1 namespace, all tests named according to
> the section in the draft in which the feature appears, and requirements
> directly from the draft. That sounds good.

We should probably also rename and/or reorganize the Jira TR1
Components. Two possible approaches come to mind:

   1) Integrate each TR1 component into the C++ component where
      it will end up in C++ 0x.

   2) Rename each TR1 component to start with the C++ 0x section
      number but the (possibly new) name from C++0 0x and with
      the C++ 0x suffix. E.g., rename TR1.2 - General Utilities
      to 20. General Utilities (C++ 0x).

Do we have a preference?

Martin

> 
>> That said, all C++ 0x code should be guarded with the same
>> macro until the next standard is released. Maybe something
>> like _RWSTD_NO_EXT_CXX_0X?
>>
> 
> That is something that I hadn't considered. I'll add that immediately.
> 
>> Martin
>>


Mime
View raw message