Boost logo

Boost :

From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2005-06-06 20:01:27


John Maddock writes:

>> The problem is that on VC 7.0 specializations for remove_reference must be
>> defined explicitly, and it's not done for string and wstring.
>>
>> I see three choices:
>>
>> 1. Declare specialization for string and wstring in program_options
>> 2. Declare them somewhere in type_traits
>> 3. Mark 7.0 as unsupported.
>> 4. Don't use any_cast to reference type
>>
>> I don't like (4) because I've introduced cast to reference myself
>> explicitly for program_options sake. (1) can lead to conflicts with
>> user code.

So can (2) if users already defined them for themselves -- which is
quite likely; I know that we did.

>> So it leaves (2) and (3). Any opinions which one is
>> better?
>
> I'm sympathetic towards (2), but it means making type_traits depend
> upon <string> and all that brings in (I've just checked and the header
> doesn't pull <string> in at present). It seems a shame to make VC7
> unsupported, just for the lack of an include however.

If we did, it would be a lie.

>
> What does anyone else think? Note that the dependency on <string>
> would be for broken compilers *only*.

5. Provide a standalone type_traits header defining necessary/possible
   specializations for the standard library's types and include it as
   required in the corresponding program_options' tests/examples.
   Users can use or ignore this header at their will.

-- 
Aleksey Gurtovoy
MetaCommunications Engineering

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk