diff --git a/librf/src/awaitable.h b/librf/src/awaitable.h index f803274..e02e30a 100644 --- a/librf/src/awaitable.h +++ b/librf/src/awaitable.h @@ -17,11 +17,11 @@ namespace resumef using lock_type = typename state_type::lock_type; using _Alloc_char = typename state_type::_Alloc_char; - awaitable_impl_t() {} - awaitable_impl_t(const awaitable_impl_t&) = default; - awaitable_impl_t(awaitable_impl_t&&) = default; + awaitable_impl_t() noexcept = default; + awaitable_impl_t(const awaitable_impl_t&) noexcept = default; + awaitable_impl_t(awaitable_impl_t&&) noexcept = default; - awaitable_impl_t& operator = (const awaitable_impl_t&) = default; + awaitable_impl_t& operator = (const awaitable_impl_t&) noexcept = default; awaitable_impl_t& operator = (awaitable_impl_t&&) = default; /** @@ -46,7 +46,7 @@ namespace resumef /** * @brief 获得与之关联的future_t<>对象,作为可等待函数(awaitable function)的返回值。 */ - future_type get_future() noexcept + future_type get_future() const noexcept { return future_type{ this->_state }; } diff --git a/librf/src/future.h b/librf/src/future.h index 5af0b2b..4b9f48c 100644 --- a/librf/src/future.h +++ b/librf/src/future.h @@ -23,13 +23,13 @@ namespace resumef future_t(counted_ptr _st) noexcept :_state(std::move(_st)) {} - future_t(const future_t&) = default; - future_t(future_t&&) = default; + future_t(const future_t&) noexcept = default; + future_t(future_t&&) noexcept = default; - future_t& operator = (const future_t&) = default; + future_t& operator = (const future_t&) noexcept = default; future_t& operator = (future_t&&) = default; - bool await_ready() noexcept + bool await_ready() const noexcept { return _state->future_await_ready(); } @@ -40,7 +40,7 @@ namespace resumef _state->future_await_suspend(handler); } - value_type await_resume() + value_type await_resume() const { return _state->future_await_resume(); } diff --git a/librf/src/promise.h b/librf/src/promise.h index 0f88c37..5914631 100644 --- a/librf/src/promise.h +++ b/librf/src/promise.h @@ -17,7 +17,7 @@ namespace resumef using promise_type = promise_t; using future_type = future_t; - promise_impl_t() noexcept {} + promise_impl_t() noexcept = default; promise_impl_t(promise_impl_t&& _Right) noexcept = default; promise_impl_t& operator = (promise_impl_t&& _Right) noexcept = default; promise_impl_t(const promise_impl_t&) = delete; diff --git a/librf/src/rf_task.cpp b/librf/src/rf_task.cpp index 210f7bc..c073030 100644 --- a/librf/src/rf_task.cpp +++ b/librf/src/rf_task.cpp @@ -2,7 +2,7 @@ namespace resumef { - task_t::task_t() + task_t::task_t() noexcept : _stop(nostopstate) { } diff --git a/librf/src/rf_task.h b/librf/src/rf_task.h index 92e35ea..08a41f4 100644 --- a/librf/src/rf_task.h +++ b/librf/src/rf_task.h @@ -16,7 +16,7 @@ namespace resumef */ struct task_t { - task_t(); + task_t() noexcept; virtual ~task_t(); /** @@ -47,7 +47,7 @@ namespace resumef * @brief 要求停止协程。 * @return bool 返回操作成功与否。 */ - bool request_stop_if_possible() + bool request_stop_if_possible() const { if (_stop.stop_possible()) return _stop.request_stop(); @@ -73,7 +73,7 @@ namespace resumef using value_type = typename future_type::value_type; using state_type = state_t; - task_impl_t() = default; + task_impl_t() noexcept = default; task_impl_t(future_type& f) { initialize(f); @@ -92,7 +92,7 @@ namespace resumef using future_type = generator_t; using state_type = state_generator_t; - task_impl_t() = default; + task_impl_t() noexcept = default; task_impl_t(future_type& f) { initialize(f); diff --git a/librf/src/scheduler.cpp b/librf/src/scheduler.cpp index 5a1a521..f44b654 100644 --- a/librf/src/scheduler.cpp +++ b/librf/src/scheduler.cpp @@ -58,7 +58,7 @@ namespace resumef } } - local_scheduler_t::local_scheduler_t(scheduler_t& sch) + local_scheduler_t::local_scheduler_t(scheduler_t& sch) noexcept { if (th_scheduler_ptr == nullptr) { diff --git a/librf/src/scheduler.h b/librf/src/scheduler.h index e746aad..d03cd0c 100644 --- a/librf/src/scheduler.h +++ b/librf/src/scheduler.h @@ -132,7 +132,7 @@ namespace resumef /** * @brief 将指定的调度器绑定到当前线程上。 */ - local_scheduler_t(scheduler_t & sch); + local_scheduler_t(scheduler_t & sch) noexcept; /** * @brief 如果当前线程绑定的调度器由local_scheduler_t所创建,则会销毁调度器,并解绑线程。 diff --git a/librf/src/switch_scheduler.h b/librf/src/switch_scheduler.h index 9ffda75..a413e00 100644 --- a/librf/src/switch_scheduler.h +++ b/librf/src/switch_scheduler.h @@ -20,7 +20,7 @@ namespace resumef switch_scheduler_awaitor& operator = (const switch_scheduler_awaitor&) = default; switch_scheduler_awaitor& operator = (switch_scheduler_awaitor&&) = default; - bool await_ready() noexcept + bool await_ready() const noexcept { return false; } @@ -41,7 +41,7 @@ namespace resumef return false; } - void await_resume() noexcept + void await_resume() const noexcept { } diff --git a/vs_proj/librf.vcxproj b/vs_proj/librf.vcxproj index 254a371..5e212b8 100644 --- a/vs_proj/librf.vcxproj +++ b/vs_proj/librf.vcxproj @@ -46,7 +46,7 @@ Application false - v142 + ClangCL true NotSet