id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 7620,Basic rvalue and C++11 support,Antony Polukhin,ebf,"This patch adds `variant(variant&&)`, `variant& operator=(variant&&)` and `template variant& operator=(T&&)` functions to Boost.Variant for compilers with rvalue references support (rvalue emulation via Boost.Move is not used for compatability reasons). `template variant& operator=(T&&)` function is enabled only if T&& is a rvalue reference. Patch is constructded via copying original assign functions and adding move semantics to them. Example: Visitor `copy_into` was copied as `move_into`. Copy constructors in `internal_visit` functions were replaced by move constructors. If compiler supports rvalue references, std::move is imported to namespace ::boost::detail::variant (this also worked around bug with unqualified call to `move()` in MSVC2010) `BOOST_NOEXCEPT` modifiers added to some methods. This patch improves performance up to 6 times for some operations. Was tested on GCC-4.6 (with and without c++11 mode) and MSVC2012. ",Patches,closed,Boost 1.53.0,variant,Boost 1.52.0,Optimization,fixed,,antoshkka@…