Fix issues with observable

This commit is contained in:
Georg Hagen
2024-08-02 16:25:36 +02:00
parent 5bd46074a9
commit bc8cb043e9

View File

@@ -32,14 +32,14 @@ namespace OpenVulkano
{}
Observable(T&& initValue, const std::string& observableName)
: object(std::forward(initValue)), OnChange(observableName)
: object(initValue), OnChange(observableName)
{}
template<typename = std::enable_if_t<std::is_copy_assignable_v<T>>>
auto& operator = (const T& val) { object = val; Notify(); return *this; }
template<typename = std::enable_if_t<std::is_move_assignable_v<T>>>
auto& operator = (T&& val) { object = std::forward(val); Notify(); return *this; }
auto& operator = (T&& val) { object = val; Notify(); return *this; }
template<typename = std::enable_if_t<std::is_copy_assignable_v<T>>>
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<std::enable_if<std::is_convertible_v<T, bool>>>
operator bool() const { return static_cast<bool>(object); }
auto& operator ++() { ++object; Notify(); return *this; }
auto& operator --() { --object; Notify(); return *this; }
auto& operator ++(int) { object++; Notify(); return *this; }