Hi Doug,

On Tue, Jan 24, 2012 at 10:35 AM, Douglas Gregor <[email protected]> wrote:
>
> On Jan 22, 2012, at 7:19 PM, Nico Weber wrote:
>
>> Author: nico
>> Date: Sun Jan 22 21:19:29 2012
>> New Revision: 148675
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=148675&view=rev
>> Log:
>> In ms mode, a move assignment operator shouldn't mark a copy ctor as deleted.
>>
>> MSVC2010's pair class has a move assignment operator but no explicit copy
>> constructor, which makes it unusable without this change.
>>
>> For symmetry, let move copy constructors not mark the default assignment
>> operator as deleted either. Both changes match cl.exe's behavior.  Fixes
>> pr11826.
>>
>> Also update the standard excerpt to point to the right paragraph.
>
>
> I'm not at all convinced that we should mimic this behavior of MSVC 2010. 
> They implemented an older, pre-standard version of rvalue references. By 
> emulating this behavior, we're prolonging the pain that goes along with 
> having multiple, different implementations of this feature and making rvalue 
> references ever harder than they are.
>
> Especially given that it looks like the next MSVC will fix their rvalue 
> references support, per
>
>        
> http://stackoverflow.com/questions/7421825/c11-features-in-visual-studio-11
>
> I think we should revert this change (and it's MicrosoftMode follow-on) and 
> mark the original PR as WONTFIX.
>
> Opinions?

As the PR explains, it's not possible to use the <map> header from
MSVC2010 without this tweak. Can we leave it in until MSVC2011 is
released?

I'm trying to get chromium to parse with clang on windows, and I can't
see a workaround around this issue other than 'don't use the MSVC2010
headers'. My longer-term goal is to have ASan working on windows, and
for that to be useful, we'd like to use all the libraries that the
'real' chromium uses.

Nico

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to