diff --git a/openVulkanoCpp/Base/Observable.hpp b/openVulkanoCpp/Base/Observable.hpp index 2569e8d..d364afc 100644 --- a/openVulkanoCpp/Base/Observable.hpp +++ b/openVulkanoCpp/Base/Observable.hpp @@ -32,14 +32,14 @@ namespace OpenVulkano {} Observable(T&& initValue, const std::string& observableName) - : object(std::forward(initValue)), OnChange(observableName) + : object(initValue), OnChange(observableName) {} template>> auto& operator = (const T& val) { object = val; Notify(); return *this; } template>> - auto& operator = (T&& val) { object = std::forward(val); Notify(); return *this; } + auto& operator = (T&& val) { object = val; Notify(); return *this; } template>> operator T() const { return object; } @@ -54,7 +54,9 @@ namespace OpenVulkano bool operator >=(const T& other) const { return object >= other; } bool operator !() const { return !object; } - operator bool() const { return object.operator bool(); } + template>> + operator bool() const { return static_cast(object); } + auto& operator ++() { ++object; Notify(); return *this; } auto& operator --() { --object; Notify(); return *this; } auto& operator ++(int) { object++; Notify(); return *this; }