<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Jul 31, 2015 at 10:21 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 Friday 31 July 2015 21:27:45 Mark Gaiser wrote:<br>
> So the one thing we know fairly certain right now is that MSVC 2012 is not<br>
> going to be the deal breaker here.<br>
> I'm still not 100% sure about GCC and Clang though..<br>
<br>
</span>Well, the pages you linked to in your earlier email said GCC supports rvalue<br>
references since 4.3 (except *this, but I don't think that's a big deal) [0],<br>
while clang has supported them since 2.9 [1].<br>
<br>
In fact, the compiler requirements page you linked says that rvalue references<br>
(except *this) are unconditionally supported in Frameworks. I guess you were<br>
looking for the text "move semantics", but they're essentially the same thing<br>
(rvalues are the language feature required to implement move semantics).<br>
<br>
I mean, I guess there's also standard library support, although we don't care<br>
that much about the containers, since we use Qt equivalent.<br>
<br>
libstdc++ (GNU's implementation) has supported the move and forward helpers<br>
since at least GCC 4.6 [3] (that's the earliest version of the libstdc++<br>
manual that's online), and I would be surprised if they weren't in at least<br>
GCC 4.4.<br>
<br>
MSVC has the move and forward helpers in 2010, as I've mentioned [4].<br>
<br>
libc++ (LLVM's implementation for Clang) is irritatingly vague about when any<br>
particular feature was implemented, but I'd be highly surprised if whatever<br>
libc++ shipped with Clang 3.0, let alone 3.1, didn't include move and forward.<br>
<br>
tl;dr: yes, you can use move semantics. I'll make that more explicit on the<br>
wiki page.<br>
<br>
Alex<br>
<br>
<br>
[0]: <a href="https://gcc.gnu.org/projects/cxx0x.html" rel="noreferrer" target="_blank">https://gcc.gnu.org/projects/cxx0x.html</a><br>
[1]: <a href="http://clang.llvm.org/cxx_status.html" rel="noreferrer" target="_blank">http://clang.llvm.org/cxx_status.html</a><br>
[2]: <a href="https://community.kde.org/Frameworks/
Policies#Frameworks_compiler_requirements_and_C.2B.2B11" rel="noreferrer" target="_blank">https://community.kde.org/Frameworks/<br>
Policies#Frameworks_compiler_requirements_and_C.2B.2B11</a><br>
[3]: <a href="https://gcc.gnu.org/onlinedocs/gcc-4.6.4/libstdc++/manual/manual/
status.html#status.iso.200x" rel="noreferrer" target="_blank">https://gcc.gnu.org/onlinedocs/gcc-4.6.4/libstdc++/manual/manual/<br>
status.html#status.iso.200x</a><br>
[4]: <a href="https://msdn.microsoft.com/en-us/library/0ah2zh0s%28v=vs.100%29.aspx" rel="noreferrer" target="_blank">https://msdn.microsoft.com/en-us/library/0ah2zh0s%28v=vs.100%29.aspx</a><br>
<br>
</blockquote></div>Funny, you're tl;dr is at the bottom ;)</div><div class="gmail_extra"><br></div><div class="gmail_extra">I'm glad you found more details on the rvalue references (i was indeed looking for move semantics).</div><div class="gmail_extra">Thank you for your help and clarifying the wiki page!</div><div class="gmail_extra"><br></div></div>