Boost logo

Boost :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-06-06 05:20:22


John Maddock wrote:

>> 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 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.
>
> What does anyone else think? Note that the dependency on <string> would
> be for broken compilers *only*.

Isn't it technically possible to forward-declared basic_string and
specialize on that? I can't find anything in the standard to prohibit
specializing on incomplete type. And restriction on putting declarations to
"namespace std" is not enforced.

- Volodya


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