Browse Source

Fixed compilation on MSVC

Paul-Louis Ageneau 5 years ago
parent
commit
2f8d06db81
1 changed files with 7 additions and 0 deletions
  1. 7 0
      include/rtc/include.hpp

+ 7 - 0
include/rtc/include.hpp

@@ -85,6 +85,7 @@ template <typename... P> class synchronized_callback {
 public:
 public:
 	synchronized_callback() = default;
 	synchronized_callback() = default;
 	synchronized_callback(synchronized_callback &&cb) { *this = std::move(cb); }
 	synchronized_callback(synchronized_callback &&cb) { *this = std::move(cb); }
+	synchronized_callback(const synchronized_callback &cb) { *this = cb; }
 	synchronized_callback(std::function<void(P...)> func) { *this = std::move(func); }
 	synchronized_callback(std::function<void(P...)> func) { *this = std::move(func); }
 	~synchronized_callback() { *this = nullptr; }
 	~synchronized_callback() { *this = nullptr; }
 
 
@@ -95,6 +96,12 @@ public:
 		return *this;
 		return *this;
 	}
 	}
 
 
+	synchronized_callback &operator=(const synchronized_callback &cb) {
+		std::scoped_lock lock(mutex, cb.mutex);
+		callback = cb.callback;
+		return *this;
+	}
+
 	synchronized_callback &operator=(std::function<void(P...)> func) {
 	synchronized_callback &operator=(std::function<void(P...)> func) {
 		std::lock_guard lock(mutex);
 		std::lock_guard lock(mutex);
 		callback = std::move(func);
 		callback = std::move(func);