diff --git a/src/entt/entity/mixin.hpp b/src/entt/entity/mixin.hpp index c8ebd5798..62d9825c7 100644 --- a/src/entt/entity/mixin.hpp +++ b/src/entt/entity/mixin.hpp @@ -117,7 +117,7 @@ class basic_sigh_mixin final: public Type { * @brief Move constructor. * @param other The instance to move from. */ - basic_sigh_mixin(basic_sigh_mixin &&other) noexcept + basic_sigh_mixin(basic_sigh_mixin &&other) noexcept(noexcept(underlying_type{std::move(other)})) : underlying_type{std::move(other)}, owner{other.owner}, construction{std::move(other.construction)}, @@ -137,7 +137,7 @@ class basic_sigh_mixin final: public Type { update{std::move(other.update), allocator} {} /*! @brief Default destructor. */ - ~basic_sigh_mixin() noexcept override = default; + ~basic_sigh_mixin() noexcept(noexcept(std::declval().~underlying_type())) override = default; /** * @brief Default copy assignment operator, deleted on purpose. @@ -150,7 +150,7 @@ class basic_sigh_mixin final: public Type { * @param other The instance to move from. * @return This mixin. */ - basic_sigh_mixin &operator=(basic_sigh_mixin &&other) noexcept { + basic_sigh_mixin &operator=(basic_sigh_mixin &&other) noexcept(noexcept(std::declval().operator=(std::move(other)))) { owner = other.owner; construction = std::move(other.construction); destruction = std::move(other.destruction);