aboutsummaryrefslogtreecommitdiff
path: root/include/cru/common
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-12-03 22:44:57 +0800
committercrupest <crupest@outlook.com>2020-12-03 22:44:57 +0800
commitb29fb11be2f043a3438a50d8942b4ad7d2af0034 (patch)
tree5847f7b880b43f2596bc10b46fc52c6f028a7a58 /include/cru/common
parent93a8bf8b967817031cd2798cdaedfa73f867dead (diff)
downloadcru-b29fb11be2f043a3438a50d8942b4ad7d2af0034.tar.gz
cru-b29fb11be2f043a3438a50d8942b4ad7d2af0034.tar.bz2
cru-b29fb11be2f043a3438a50d8942b4ad7d2af0034.zip
...
Diffstat (limited to 'include/cru/common')
-rw-r--r--include/cru/common/ClonablePtr.hpp7
-rw-r--r--include/cru/common/Event.hpp4
2 files changed, 7 insertions, 4 deletions
diff --git a/include/cru/common/ClonablePtr.hpp b/include/cru/common/ClonablePtr.hpp
index 47a1d3bd..5e4b80c9 100644
--- a/include/cru/common/ClonablePtr.hpp
+++ b/include/cru/common/ClonablePtr.hpp
@@ -8,13 +8,16 @@
namespace cru {
template <typename TClonable>
class ClonablePtr {
+ template <typename T>
+ friend class ClonablePtr;
+
public:
using element_type = typename std::unique_ptr<TClonable>::element_type;
using pointer = typename std::unique_ptr<TClonable>::pointer;
ClonablePtr() = default;
ClonablePtr(std::nullptr_t) noexcept : ptr_(nullptr) {}
- ClonablePtr(pointer p) noexcept : ptr_(p) {}
+ explicit ClonablePtr(pointer p) noexcept : ptr_(p) {}
ClonablePtr(std::unique_ptr<element_type>&& p) noexcept
: ptr_(std::move(p)) {}
template <typename O,
@@ -52,7 +55,7 @@ class ClonablePtr {
}
ClonablePtr& operator=(const ClonablePtr& other) {
if (this != &other) {
- ptr_ = std::unique_ptr<element_type>(other.ptr->Clone());
+ ptr_ = std::unique_ptr<element_type>(other.ptr_->Clone());
}
return *this;
}
diff --git a/include/cru/common/Event.hpp b/include/cru/common/Event.hpp
index 59502527..7f7b4dd4 100644
--- a/include/cru/common/Event.hpp
+++ b/include/cru/common/Event.hpp
@@ -98,7 +98,7 @@ struct IBaseEvent {
using SpyOnlyHandler = std::function<void()>;
public:
- virtual EventRevoker AddHandler(SpyOnlyHandler handler) = 0;
+ virtual EventRevoker AddSpyOnlyHandler(SpyOnlyHandler handler) = 0;
};
// Provides an interface of event.
@@ -147,7 +147,7 @@ class Event : public details::EventBase, public IEvent<TEventArgs> {
CRU_DEFAULT_MOVE(Event)
~Event() = default;
- EventRevoker AddHandler(SpyOnlyHandler handler) override {
+ EventRevoker AddSpyOnlyHandler(SpyOnlyHandler handler) override {
const auto token = current_token_++;
this->handler_data_list_.emplace_back(token, std::move(handler));
return CreateRevoker(token);