Does frameworks allow move semantics unconditionally?

Mark Gaiser markg85 at gmail.com
Fri Jul 31 20:36:05 UTC 2015


On Fri, Jul 31, 2015 at 10:21 PM, Alex Merry <alex.merry at kde.org> wrote:

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

I'm glad you found more details on the rvalue references (i was indeed
looking for move semantics).
Thank you for your help and clarifying the wiki page!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20150731/7d66377e/attachment.html>


More information about the Kde-frameworks-devel mailing list