Boost logo

Boost :

Subject: Re: [boost] [config] vc10 and BOOST_NO_DECLTYPE
From: Stephan T. Lavavej (stl_at_[hidden])
Date: 2010-04-20 14:06:42


While VC10 supports nullptr (yay!), it doesn't support initializer lists or char16_t/char32_t.

We picked up an <initializer_list> header from Dinkumware, but I forgot to remove it when I purged the code conditionally compiled under _HAS_INITIALIZER_LISTS from our sources. Oops. (This header doesn't actually do anything because the Core Language support is nonexistent.)

We also picked up "typedef unsigned short char16_t;" and "typedef unsigned int char32_t;" from Dinkumware, but they're obviously fake and used in only one place ("typedef basic_string<char16_t> u16string;" and "typedef basic_string<char32_t> u32string;" in <string>). I should have purged this too, but I didn't realize that it would cause problems.

See "C++0x Core Language Features In VC10: The Table" at http://blogs.msdn.com/vcblog/archive/2010/04/06/c-0x-core-language-features-in-vc10-the-table.aspx . Anything that's not in this table isn't supported by VC10. Also, the "Forward declared enums" row should say "No" for VC9 and VC10.

Thanks,
Stephan T. Lavavej
Visual C++ Libraries Developer

-----Original Message-----
From: boost-bounces_at_[hidden] [mailto:boost-bounces_at_[hidden]] On Behalf Of John Maddock
Sent: Tuesday, April 20, 2010 10:31 AM
To: boost_at_[hidden]
Subject: Re: [boost] [config] vc10 and BOOST_NO_DECLTYPE

>>> The issue is whether the decltype keyword is too broken on VC10 to
>>> define
>>> BOOST_NO_DECLTYPE. I think it /may/ be, so we should define it just to
>>> be
>>> safe, at least for 1.43.
>>
>> Eric, where do we stand on this? Does the VC10 decltype problem in the
>> beta still exist in the final release of VC10?
>
> decltype is still broken in the final release of VC10. e.g. the
> following code deduces the return type of getOne() to be one& rather
> than one, causing an error on the "res r" line. Bizarrely, this problem
> goes away if NO_CONSTRUCTOR is defined, as the return type is deduced
> correctly.

For the present I've added that to the BOOST_NO_DECLTYPE test case in SVN
Trunk. Also defined BOOST_NO_DECLTYPE in trunk for VC10, but please do
change this if there is consensus that it works "well enough".

I've also stopped defining the following macros for VC10 as per ticket
https://svn.boost.org/trac/boost/ticket/4110:

BOOST_NO_CHAR16_T
BOOST_NO_CHAR32_T
BOOST_NO_INITIALIZER_LISTS
BOOST_NO_NULLPTR

If anyone thinks these should still be defined, please provide updated test
cases.

Cheers, John.

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


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