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
>> 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.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk