<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Jul 31, 2015 at 3:11 PM, Alex Merry <span dir="ltr"><<a href="mailto:alex.merry@kde.org" target="_blank">alex.merry@kde.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thursday 30 July 2015 20:46:24 Mark Gaiser wrote:<br>
> On Thu, Jul 23, 2015 at 9:59 PM, Mark Gaiser <<a href="mailto:markg85@gmail.com">markg85@gmail.com</a>> wrote:<br>
> > Hi,<br>
> ><br>
> > The wiki page doesn't state it explicitly [1].<br>
> ><br>
> > The status of move semantics when searching for the status of N3053 on the<br>
> > compilers that frameworks support:<br>
> > GCC 4.6 [2] (frameworks requires 4.5)<br>
> > CLANG 3.0 [3] (frameworks requires 3.1)<br>
> > Visual Studio 2010/2012 [4] (it has some (most?) move semantics with N3053<br>
> > being implemented in 2015. But has it enough till 2012 for normal move<br>
> > semantics? That i don't know.)<br>
> ><br>
> > Allowing this unconditionally (with the exception of *this since that's<br>
> > apparently fixed in GCC 4.8.1) seems possible since the compiler support<br>
> > seems there and the operation - when implemented - can give quite nice<br>
> > benefits.<br>
<br>
</span>Our only language constraints are what is allowed by the compilers we support.<br>
<br>
I know that VS 2013 has most move semantics support except that the compiler<br>
can't generate default move constructors and move assignment operators.<br>
<br>
The VS 2010 compiler provides rvalue references, but not always as effeciently<br>
as you'd like (it doesn't properly account for temporary values, if I<br>
understand the explanation correctly). What I'm not certain about is the<br>
standard library support on this front, but I think it's basically absent from<br>
2010 and mostly present in 2012.<br>
<br>
So when you say "move semantics", what does that encompass? You can use rvalue<br>
references in 2010 just fine, but someone would need to check that Qt detects<br>
that properly and provides appropriate overloads of various methods, and you<br>
may not get std::move (if you use qMove, it will degrade properly in<br>
std::move's absence, though).<br>
<br>
Alex<br>
_______________________________________________<br>
Kde-frameworks-devel mailing list<br>
<a href="mailto:Kde-frameworks-devel@kde.org">Kde-frameworks-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/kde-frameworks-devel" rel="noreferrer" target="_blank">https://mail.kde.org/mailman/listinfo/kde-frameworks-devel</a><br>
</blockquote></div><br></div><div class="gmail_extra">Hi Alex,</div><div class="gmail_extra"><br></div><div class="gmail_extra">What i mean with "move semantics" are mainly the following features:</div><div class="gmail_extra">- std::move</div><div class="gmail_extra">- move copy constructor</div><div class="gmail_extra">- move assignment operator</div><div class="gmail_extra"><br></div><div class="gmail_extra">I know std::move is in vs2010, i'm just not so sure about the move copy and assignment operator. Same for clang. I can't really find where clang started to support these things.</div></div>