|
Boost : |
Subject: Re: [boost] [Boost.Move] [Boost.Container] Compiling with older versions of Boost and Performance
From: Thomas Klimpel (Thomas.Klimpel_at_[hidden])
Date: 2012-01-10 12:45:15
THOMAS JORDAN wrote:
> Thanks, yes that would be the sensible way to proceed.
> My other question was, though -
> Does Boost::Move library rely on compiler optimisations of
> copy-elision/return value optimisation, as is the case with the Adobe
> Source Library (ASL) Move library, for example. The reason I ask is
> that I
> suspect the compiler I want to target is not very good at said
> optimisations. Or are there any other known factors which could
> mitigate
> against its effectiveness for a. n. other compiler?
Note the RVO (return value optimization) is a feature that is either working or not, similarly to tail recursion in functional languages. This is unlike URVO (unnamed return value optimization), which depends on the code analysis capabilities of a optimizer. (Well, some compilers used to turn off RVO in debug mode, but this should no longer be the case.)
Writing tests to check whether RVO is implemented is easy. I guess you have a pretty good chance that even your compiler supports RVO (so I guess the ASL Move library would work). But this doesn't mean that it will be easy to get Boost.Move working with your compiler.
Regards,
Thomas
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk