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
