The compiler toolset coming with devtoolset-7 on CentOS still suffers
from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58265. The workaround
for this has been removed before because other gcc-7 compilers are not
affected by this, but it is obviously still needed for CentOS.
Fixes #3826
Mdrunner::Mdrunner(Mdrunner&&) noexcept = default;
-Mdrunner& Mdrunner::operator=(Mdrunner&& /*handle*/) noexcept = default;
+//NOLINTNEXTLINE(performance-noexcept-move-constructor) working around GCC bug 58265 in CentOS 7
+Mdrunner& Mdrunner::operator=(Mdrunner&& /*handle*/) noexcept(BUGFREE_NOEXCEPT_STRING) = default;
class Mdrunner::BuilderImplementation
{
class SimulationContext;
class StopHandlerBuilder;
+//! Work-around for GCC bug 58265 still present in CentOS 7 devtoolset-7
+constexpr bool BUGFREE_NOEXCEPT_STRING = std::is_nothrow_move_assignable<std::string>::value;
+
/*! \libinternal \brief Runner object for supporting setup and execution of mdrun.
*
* This class has responsibility for the lifetime of data structures
* \{
*/
Mdrunner(Mdrunner&& handle) noexcept;
- Mdrunner& operator=(Mdrunner&& handle) noexcept;
+ //NOLINTNEXTLINE(performance-noexcept-move-constructor) working around GCC bug 58265 in CentOS 7
+ Mdrunner& operator=(Mdrunner&& handle) noexcept(BUGFREE_NOEXCEPT_STRING);
/* \} */
/*! \brief Driver routine, that calls the different simulation methods. */