-/* Copyright (c) 2016-2019. The SimGrid Team.
+/* Copyright (c) 2016-2020. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
FutureStateBase(FutureStateBase const&) = delete;
FutureStateBase& operator=(FutureStateBase const&) = delete;
- XBT_PUBLIC void schedule(simgrid::xbt::Task<void()>&& job);
+ XBT_PUBLIC void schedule(simgrid::xbt::Task<void()>&& job) const;
void set_exception(std::exception_ptr exception)
{
// Move type:
Future(Future&) = delete;
- Future& operator=(Future&) = delete;
- Future(Future&& that) : state_(std::move(that.state_)) {}
- Future& operator=(Future&& that)
- {
- state_ = std::move(that.state_);
- return *this;
- }
+ Future& operator=(const Future&) = delete;
+ Future(Future&&) noexcept = default;
+ Future& operator=(Future&&) noexcept = default;
/** Whether the future is valid:.
*
// Move type
Promise(Promise const&) = delete;
Promise& operator=(Promise const&) = delete;
- Promise(Promise&& that) : state_(std::move(that.state_)) { std::swap(future_get_, that.future_get_); }
+ Promise(Promise&& that) noexcept : state_(std::move(that.state_)) { std::swap(future_get_, that.future_get_); }
- Promise& operator=(Promise&& that)
+ Promise& operator=(Promise&& that) noexcept
{
this->state_ = std::move(that.state_);
this->future_get_ = that.future_get_;
// Move type
Promise(Promise const&) = delete;
Promise& operator=(Promise const&) = delete;
- Promise(Promise&& that) : state_(std::move(that.state_)) { std::swap(future_get_, that.future_get_); }
- Promise& operator=(Promise&& that)
+ Promise(Promise&& that) noexcept : state_(std::move(that.state_)) { std::swap(future_get_, that.future_get_); }
+ Promise& operator=(Promise&& that) noexcept
{
this->state_ = std::move(that.state_);
this->future_get_ = that.future_get_;
future_get_ = true;
return Future<void>(state_);
}
- void set_value()
+ void set_value() const
{
if (state_ == nullptr)
throw std::future_error(std::future_errc::no_state);
state_->set_value();
}
- void set_exception(std::exception_ptr exception)
+ void set_exception(std::exception_ptr exception) const
{
if (state_ == nullptr)
throw std::future_error(std::future_errc::no_state);