Nui
Classes | Namespaces | Typedefs | Functions | Variables
observed_value.hpp File Reference
#include <iterator>
#include <nui/concepts.hpp>
#include <nui/event_system/range_event_context.hpp>
#include <nui/event_system/event_context.hpp>
#include <nui/utility/assert.hpp>
#include <nui/utility/meta/pick_first.hpp>
#include <nui/utility/move_detector.hpp>
#include <memory>
#include <vector>
#include <functional>
#include <type_traits>
#include <list>
#include <utility>
#include <deque>
#include <string>
#include <cassert>
#include <set>
Include dependency graph for observed_value.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Nui::CustomEventContextFlag_t
 
class  Nui::ObservedBase
 
class  Nui::ModifiableObserved< ContainedT >
 
class  Nui::ModifiableObserved< ContainedT >::ModificationProxy
 
class  Nui::ContainerWrapUtility::ReferenceWrapper< T, ContainerT >
 
class  Nui::ContainerWrapUtility::PointerWrapper< T, ContainerT >
 
class  Nui::ContainerWrapUtility::IteratorWrapper< WrappedIterator, ContainerT >
 
class  Nui::ObservedContainer< ContainerT >
 
class  Nui::Observed< T >
 
class  Nui::Observed< std::vector< Parameters... > >
 
class  Nui::Observed< std::deque< Parameters... > >
 
class  Nui::Observed< std::basic_string< Parameters... > >
 
class  Nui::Observed< std::set< Parameters... > >
 
class  Nui::Observed< std::list< Parameters... > >
 
class  Nui::Observed< void >
 
struct  Nui::Detail::IsObserved< T >
 
struct  Nui::Detail::IsObserved< Observed< T > >
 
struct  Nui::Detail::IsWeakObserved< T >
 
struct  Nui::Detail::IsWeakObserved< std::weak_ptr< Observed< T > > >
 
struct  Nui::Detail::IsSharedObserved< T >
 
struct  Nui::Detail::IsSharedObserved< std::shared_ptr< Observed< T > > >
 
struct  Nui::Detail::IsObservedLike< T >
 
struct  Nui::Detail::CopyableObservedWrap< T >
 
struct  Nui::Detail::ObservedAddReference< T >
 
struct  Nui::Detail::ObservedAddReference< void >
 
struct  Nui::Detail::ObservedAddReference< std::weak_ptr< Observed< T > > >
 
struct  Nui::Detail::ObservedAddReference< std::shared_ptr< Observed< T > > >
 
struct  Nui::Detail::ObservedAddReference< std::weak_ptr< const Observed< T > > >
 
struct  Nui::Detail::ObservedAddReference< std::shared_ptr< const Observed< T > > >
 
struct  Nui::Detail::ObservedAddMutableReference< T >
 
struct  Nui::Detail::ObservedAddMutableReference< void >
 
struct  Nui::Detail::ObservedAddMutableReference< std::weak_ptr< Observed< T > > >
 
struct  Nui::Detail::ObservedAddMutableReference< std::shared_ptr< Observed< T > > >
 
struct  Nui::UnpackObserved< T >
 
struct  Nui::UnpackObserved< Observed< T > >
 
struct  Nui::UnpackObserved< std::weak_ptr< Observed< T > > >
 
struct  Nui::UnpackObserved< std::shared_ptr< Observed< T > > >
 
struct  Nui::UnpackObserved< std::weak_ptr< const Observed< T > > >
 
struct  Nui::UnpackObserved< std::shared_ptr< const Observed< T > > >
 

Namespaces

 Nui
 
 Nui::ContainerWrapUtility
 
 Nui::Detail
 

Typedefs

template<typename T >
using Nui::Detail::ObservedAddReference_t = typename ObservedAddReference< std::decay_t< T > >::type
 
template<typename T >
using Nui::Detail::ObservedAddMutableReference_t = typename ObservedAddMutableReference< std::remove_reference_t< T > >::type
 
template<typename T >
using Nui::Detail::ObservedAddMutableReference_raw = typename ObservedAddMutableReference< std::remove_reference_t< T > >::raw
 
template<typename T >
using Nui::UnpackObserved_t = typename UnpackObserved< T >::type
 

Functions

template<typename T , typename ContainerT >
auto & Nui::ContainerWrapUtility::unwrapReferenceWrapper (ReferenceWrapper< T, ContainerT > &wrapper)
 
template<typename T , typename ContainerT >
auto const & Nui::ContainerWrapUtility::unwrapReferenceWrapper (ReferenceWrapper< T, ContainerT > const &wrapper)
 
auto & Nui::ContainerWrapUtility::unwrapReferenceWrapper (auto &ref)
 
auto const & Nui::ContainerWrapUtility::unwrapReferenceWrapper (auto const &ref)
 
template<typename T >
requires Incrementable< T > ModifiableObserved< T > & Nui::operator++ (ModifiableObserved< T > &observedValue)
 
template<typename T >
requires Incrementable< T > T Nui::operator++ (ModifiableObserved< T > &observedValue, int)
 
template<typename T >
auto Nui::operator-- (ModifiableObserved< T > &observedValue) -> ModifiableObserved< Detail::PickFirst_t< T, decltype(--std::declval< T >())>> &
 
template<typename T >
auto Nui::operator-- (ModifiableObserved< T > &observedValue, int) -> Detail::PickFirst_t< T, decltype(std::declval< T >() --)>
 

Variables

constexpr CustomEventContextFlag_t Nui::CustomEventContextFlag {}
 
template<typename T >
concept Nui::IsObserved = Detail::IsObserved<std::decay_t<T>>::value
 
template<typename T >
concept Nui::IsSharedObserved = Detail::IsSharedObserved<std::decay_t<T>>::value
 
template<typename T >
concept Nui::IsWeakObserved = Detail::IsWeakObserved<std::decay_t<T>>::value
 
template<typename T >
concept Nui::IsObservedLike = Detail::IsObservedLike<std::decay_t<T>>::value