Merge from trunk: * make the library work on exception-disabled environments (fixes #8717) * fix compilation of Boost.Variants move assignment for situations when one of the variant template classes has nothrow copy constructor and throwing move constructor (fixes #8772) * mark move constructor of variant with BOOST_NOEXCEPT_IF (refs #7911)