Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QGenericItemModelDetails Namespace Reference

Classes

struct  DefaultTreeProtocol
 
struct  has_metaobject
 
struct  has_metaobject< T, std::void_t< decltype(wrapped_t< T >::staticMetaObject)> >
 
struct  is_any_of_impl
 
struct  is_any_of_impl< T, Template, Templates... >
 
struct  is_any_of_impl< Template< Params... >, Template, Templates... >
 
struct  is_multi_role
 
struct  is_multi_role< C, std::void_t< typename C::key_type, typename C::mapped_type > >
 
struct  is_smart_ptr
 
struct  is_smart_ptr< T, std::enable_if_t< std::conjunction_v< std::is_pointer< decltype(std::declval< T & >().get())>, std::is_same< decltype(*std::declval< T & >().get()), decltype(*std::declval< T & >())>, is_validatable< T > > > >
 
struct  is_tree_range
 
struct  is_tree_range< Range, Protocol, R, std::enable_if_t< std::conjunction_v< protocol_parentRow< Protocol, R >, protocol_childRows< Protocol, R > > > >
 
struct  iterable_value
 
struct  ListProtocol
 
struct  make_void
 
struct  ModelData
 
struct  protocol_childRows
 
struct  protocol_childRows< P, R, std::void_t< decltype(std::declval< P & >().childRows(std::declval< wrapped_t< R > & >()))> >
 
struct  protocol_deleteRow
 
struct  protocol_deleteRow< P, R, std::void_t< decltype(std::declval< P & >().deleteRow(std::declval< R && >()))> >
 
struct  protocol_mutable_childRows
 
struct  protocol_mutable_childRows< P, R, std::void_t< decltype(refTo(std::declval< P & >().childRows(std::declval< wrapped_t< R > & >()))={}) > >
 
struct  protocol_newRow
 
struct  protocol_newRow< P, std::void_t< decltype(std::declval< P & >().newRow())> >
 
struct  protocol_parentRow
 
struct  protocol_parentRow< P, R, std::void_t< decltype(std::declval< P & >().parentRow(std::declval< wrapped_t< R > & >()))> >
 
struct  protocol_setParentRow
 
struct  protocol_setParentRow< P, R, std::void_t< decltype(std::declval< P & >().setParentRow(std::declval< wrapped_t< R > & >(), std::declval< wrapped_t< R > * >()))> >
 
struct  protocol_traits
 
struct  range_traits
 
struct  range_traits< C, std::void_t< decltype(cbegin(std::declval< C & >())), decltype(cend(std::declval< C & >())), std::enable_if_t<!is_multi_role_v< C > > > >
 
struct  range_traits< const T * >
 
struct  range_traits< QByteArray >
 
struct  range_traits< QLatin1StringView >
 
struct  range_traits< QString >
 
struct  range_traits< std::basic_string< CharT, Traits, Allocator > >
 
struct  row_traits
 
struct  row_traits< T, std::void_t< std::tuple_element_t< 0, T > > >
 
struct  row_traits< T, typename make_void< decltype(T::staticMetaObject)>::type >
 
struct  row_traits< T[N]>
 
struct  TableProtocol
 
struct  test_erase
 
struct  test_erase< C, std::void_t< decltype(std::declval< C >().erase(std::declval< typename C::const_iterator >(), std::declval< typename C::const_iterator >()))> >
 
struct  test_insert
 
struct  test_insert< C, std::void_t< decltype(std::declval< C >().insert(std::declval< typename C::const_iterator >(), std::declval< typename C::size_type >(), std::declval< typename C::value_type >()))> >
 
struct  test_insert_range
 
struct  test_insert_range< C, std::void_t< decltype(std::declval< C & >().insert(std::declval< typename C::const_iterator & >(), std::declval< std::move_iterator< typename C::iterator > & >(), std::declval< std::move_iterator< typename C::iterator > & >()))> >
 
struct  test_resize
 
struct  test_resize< C, std::void_t< decltype(std::declval< C >().resize(std::declval< typename C::size_type >(), std::declval< typename C::value_type >()))> >
 
struct  test_size
 
struct  test_size< C, std::void_t< decltype(std::size(std::declval< C & >()))> >
 

Typedefs

template<typename T, template< typename... > typename... Templates>
using is_any_of = is_any_of_impl<std::remove_cv_t<T>, Templates...>
 
template<typename T>
using is_validatable = std::is_constructible<bool, T>
 
template<typename T>
using is_any_unique_ptr = is_any_of<T, std::unique_ptr, QScopedPointer>
 
template<typename T>
using is_any_shared_ptr
 
template<typename T>
using is_owning_or_raw_pointer
 
template<typename T>
using wrapped_t = std::remove_pointer_t<decltype(pointerTo(std::declval<T&>()))>
 
template<typename T>
using is_wrapped = std::negation<std::is_same<wrapped_t<T>, std::remove_reference_t<T>>>
 
template<typename Range, typename R = typename range_traits<wrapped_t<Range>>::value_type>
using table_protocol_t
 
template<typename Range>
using if_is_table_range
 
template<typename Range, typename Protocol = DefaultTreeProtocol<Range>>
using if_is_tree_range
 

Enumerations

enum class  Mutable { Yes , No }
 

Functions

template<typename T>
static auto pointerTo (T &&t)
 
template<typename T>
static constexpr bool isValid (const T &t) noexcept
 
template<typename T>
static decltype(auto) refTo (T &&t)
 
template<typename It>
auto key (It &&it) -> decltype(it.key())
 
template<typename It>
auto value (It &&it) -> decltype(it.value())
 
template<typename C>
static auto begin (C &&c) -> decltype(std::begin(refTo(std::forward< C >(c))))
 
template<typename C>
static auto end (C &&c) -> decltype(std::end(refTo(std::forward< C >(c))))
 
template<typename C>
static auto cbegin (C &&c) -> decltype(std::cbegin(refTo(std::forward< C >(c))))
 
template<typename C>
static auto cend (C &&c) -> decltype(std::cend(refTo(std::forward< C >(c))))
 
template<typename C>
static auto pos (C &&c, int i)
 
template<typename C>
static auto cpos (C &&c, int i)
 

Variables

template<typename C>
static constexpr bool is_multi_role_v = is_multi_role<C>::value
 
template<typename C>
static constexpr bool is_range_v = range_traits<C>()
 
template<typename T>
static constexpr int static_size_v
 
template<typename T>
static constexpr bool has_metaobject_v = has_metaobject<T>::value
 

Typedef Documentation

◆ if_is_table_range

template<typename Range>
using QGenericItemModelDetails::if_is_table_range
Initial value:
std::enable_if_t<is_range_v<wrapped_t<Range>>
bool>

Definition at line 468 of file qgenericitemmodel_impl.h.

◆ if_is_tree_range

template<typename Range, typename Protocol = DefaultTreeProtocol<Range>>
using QGenericItemModelDetails::if_is_tree_range
Initial value:
std::enable_if_t<is_range_v<wrapped_t<Range>>
bool>
std::remove_pointer_t< decltype(pointerTo(std::declval< T & >()))> wrapped_t

Definition at line 473 of file qgenericitemmodel_impl.h.

◆ is_any_of

template<typename T, template< typename... > typename... Templates>
using QGenericItemModelDetails::is_any_of = is_any_of_impl<std::remove_cv_t<T>, Templates...>

Definition at line 49 of file qgenericitemmodel_impl.h.

◆ is_any_shared_ptr

template<typename T>
using QGenericItemModelDetails::is_any_shared_ptr
Initial value:
is_any_of<T, std::shared_ptr, QSharedPointer,
\inmodule QtCore
Definition qshareddata.h:35
\inmodule QtCore
is_any_of_impl< std::remove_cv_t< T >, Templates... > is_any_of

Definition at line 73 of file qgenericitemmodel_impl.h.

◆ is_any_unique_ptr

template<typename T>
using QGenericItemModelDetails::is_any_unique_ptr = is_any_of<T, std::unique_ptr, QScopedPointer>

Definition at line 70 of file qgenericitemmodel_impl.h.

◆ is_owning_or_raw_pointer

Initial value:
std::disjunction<is_any_shared_ptr<T>, is_any_unique_ptr<T>,
std::is_pointer<T>>
is_any_of< T, std::unique_ptr, QScopedPointer > is_any_unique_ptr

Definition at line 77 of file qgenericitemmodel_impl.h.

◆ is_validatable

template<typename T>
using QGenericItemModelDetails::is_validatable = std::is_constructible<bool, T>

Definition at line 52 of file qgenericitemmodel_impl.h.

◆ is_wrapped

template<typename T>
using QGenericItemModelDetails::is_wrapped = std::negation<std::is_same<wrapped_t<T>, std::remove_reference_t<T>>>

Definition at line 99 of file qgenericitemmodel_impl.h.

◆ table_protocol_t

template<typename Range, typename R = typename range_traits<wrapped_t<Range>>::value_type>
using QGenericItemModelDetails::table_protocol_t

◆ wrapped_t

template<typename T>
using QGenericItemModelDetails::wrapped_t = std::remove_pointer_t<decltype(pointerTo(std::declval<T&>()))>

Definition at line 96 of file qgenericitemmodel_impl.h.

Enumeration Type Documentation

◆ Mutable

Enumerator
Yes 
No 

Definition at line 258 of file qgenericitemmodel_impl.h.

Function Documentation

◆ begin()

template<typename C>
static auto QGenericItemModelDetails::begin ( C && c) -> decltype(std::begin(refTo(std::forward<C>(c))))
static

Definition at line 135 of file qgenericitemmodel_impl.h.

◆ cbegin()

template<typename C>
static auto QGenericItemModelDetails::cbegin ( C && c) -> decltype(std::cbegin(refTo(std::forward<C>(c))))
static

Definition at line 141 of file qgenericitemmodel_impl.h.

◆ cend()

template<typename C>
static auto QGenericItemModelDetails::cend ( C && c) -> decltype(std::cend(refTo(std::forward<C>(c))))
static

Definition at line 144 of file qgenericitemmodel_impl.h.

◆ cpos()

template<typename C>
static auto QGenericItemModelDetails::cpos ( C && c,
int i )
static

Definition at line 150 of file qgenericitemmodel_impl.h.

◆ end()

template<typename C>
static auto QGenericItemModelDetails::end ( C && c) -> decltype(std::end(refTo(std::forward<C>(c))))
static

Definition at line 138 of file qgenericitemmodel_impl.h.

◆ isValid()

template<typename T>
static constexpr bool QGenericItemModelDetails::isValid ( const T & t)
staticconstexprnoexcept

Definition at line 102 of file qgenericitemmodel_impl.h.

◆ key()

template<typename It>
auto QGenericItemModelDetails::key ( It && it) -> decltype(it.key())

Definition at line 124 of file qgenericitemmodel_impl.h.

◆ pointerTo()

template<typename T>
static auto QGenericItemModelDetails::pointerTo ( T && t)
static

Definition at line 81 of file qgenericitemmodel_impl.h.

◆ pos()

template<typename C>
static auto QGenericItemModelDetails::pos ( C && c,
int i )
static

Definition at line 147 of file qgenericitemmodel_impl.h.

◆ refTo()

template<typename T>
static decltype(auto) QGenericItemModelDetails::refTo ( T && t)
static

Definition at line 111 of file qgenericitemmodel_impl.h.

◆ value()

template<typename It>
auto QGenericItemModelDetails::value ( It && it) -> decltype(it.value())

Definition at line 129 of file qgenericitemmodel_impl.h.

Variable Documentation

◆ has_metaobject_v

template<typename T>
bool QGenericItemModelDetails::has_metaobject_v = has_metaobject<T>::value
staticconstexpr

Definition at line 342 of file qgenericitemmodel_impl.h.

◆ is_multi_role_v

template<typename C>
bool QGenericItemModelDetails::is_multi_role_v = is_multi_role<C>::value
staticconstexpr

Definition at line 226 of file qgenericitemmodel_impl.h.

◆ is_range_v

template<typename C>
bool QGenericItemModelDetails::is_range_v = range_traits<C>()
staticconstexpr

Definition at line 277 of file qgenericitemmodel_impl.h.

◆ static_size_v

template<typename T>
int QGenericItemModelDetails::static_size_v
staticconstexpr