Please tell me if I defined the conditions for noexcept expressions correctly in this cases?
class scheme_host_port
{
public:
using value_type = std::string;
scheme_host_port() = delete;
scheme_host_port(value_type const &value) noexcept(std::is_nothrow_copy_constructible_v<value_type>) : value_{value} {};
scheme_host_port(value_type &&value) noexcept(std::is_nothrow_move_constructible_v<value_type>) : value_{value} {};
scheme_host_port(scheme_host_port const &) = delete;
scheme_host_port &operator=(scheme_host_port const &) = delete;
scheme_host_port(scheme_host_port &&) noexcept(std::is_nothrow_move_constructible_v<value_type>) = default;
scheme_host_port &operator=(scheme_host_port &&) noexcept(std::is_nothrow_move_assignable_v<value_type>) = default;
value_type operator()() const { return value_; }
bool operator==(scheme_host_port const &rhs) const noexcept { return this->value_ == rhs.value_; }
bool operator!=(scheme_host_port const &rhs) const noexcept { return !(this->value_ == rhs.value_); }
private:
value_type value_;
};