On Dec 12, 2008, at 6:14 PM, Sebastian Redl wrote: > > On Fri, 12 Dec 2008 17:32:04 -0500, steve naroff <[email protected]> > wrote: >> On Dec 12, 2008, at 4:52 PM, Howard Hinnant wrote: >> >>> I'm afraid I don't have access to Windows. Is there a compiler >>> switch you could try that is along the lines of "stress conformance >>> instead of backwards compatibility"? >>> >> >> I'm not aware of any. > > Try /Za. However, if anything in LLVM includes <windows.h>, that won't > work, because in a case of grotesque idiocy by the various MS teams > involved in this, windows.h won't compile under /Za. MS never > bothered to > implement #pragma system_header either. > Or, at least this was the case in VS.Net 2003. Maybe in 2005 it's > different. > >> Since you are familiar with this specific C++ >> idiom, you might try Googling for some info. I'd do it myself, >> however >> I'm not as plugged into the history of this particular C++ idiom (so >> you'd likely have more success finding the right stuff:-) > > I've downloaded VS Express 2008, but CMake's site is down, so I can't > compile the project at this time. (Also, it's late and I need to go to > bed.) > > My guess is that this fails because VS allows a temporary to bind to a > non-const reference. This means that the hidden non-const copy > constructor > is suddenly preferred over the conversion to the mover followed by > initialization through the mover constructor. Since the non-const copy > constructor is private, this fails. (And the equivalent for the > assignment > operators.)
Yup. They give a warning... http://msdn.microsoft.com/en-us/library/0eestyah(VS.80).aspx > I have some ideas for a workaround, but I need a working compilation > environment first. Are there instructions for compiling the thing > with VC++ > written up somewhere? I can follow the instructions for LLVM itself, > but I > don't know what to do with Clang. > If there are no instructions, can you write something up, please? After you get some rest, here's a long shot: ASTOwningResult& operator =(volatile ASTOwningResult&); // DO NOT IMPLEMENT However I suspect if they don't respect bind an rvalue to A&, they aren't going to respect not binding to a volatile either. -Howard _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
