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
QTypeTraits Namespace Reference

Namespaces

namespace  detail
 

Classes

struct  has_istream_operator
 
struct  has_istream_operator< Stream, T, std::void_t< decltype(detail::reference< Stream >() > > detail::reference< T >())> >
 
struct  has_operator_equal
 
struct  has_operator_less_than
 
struct  has_ostream_operator
 
struct  has_ostream_operator< Stream, T, std::void_t< decltype(detail::reference< Stream >()<< detail::const_reference< T >())> >
 
struct  is_dereferenceable
 
struct  is_dereferenceable< T, std::void_t< decltype(std::declval< T >().operator->())> >
 

Typedefs

template<typename T , typename U >
using Promoted = typename detail::Promoted<T, U>::type
 
template<typename Container , typename T >
using has_operator_equal_container = std::disjunction<std::is_base_of<Container, T>, QTypeTraits::has_operator_equal<T>>
 
template<typename Container , typename T >
using has_operator_less_than_container = std::disjunction<std::is_base_of<Container, T>, QTypeTraits::has_operator_less_than<T>>
 
template<typename ... T>
using compare_eq_result = std::enable_if_t<std::conjunction_v<QTypeTraits::has_operator_equal<T>...>, bool>
 
template<typename Container , typename ... T>
using compare_eq_result_container = std::enable_if_t<std::conjunction_v<QTypeTraits::has_operator_equal_container<Container, T>...>, bool>
 
template<typename ... T>
using compare_lt_result = std::enable_if_t<std::conjunction_v<QTypeTraits::has_operator_less_than<T>...>, bool>
 
template<typename Container , typename ... T>
using compare_lt_result_container = std::enable_if_t<std::conjunction_v<QTypeTraits::has_operator_less_than_container<Container, T>...>, bool>
 
template<typename Stream , typename Container , typename T >
using has_ostream_operator_container = std::disjunction<std::is_base_of<Container, T>, QTypeTraits::has_ostream_operator<Stream, T>>
 
template<typename Stream , typename Container , typename T >
using has_istream_operator_container = std::disjunction<std::is_base_of<Container, T>, QTypeTraits::has_istream_operator<Stream, T>>
 

Variables

template<typename T >
constexpr bool is_dereferenceable_v = is_dereferenceable<T>::value
 
template<typename T >
constexpr bool has_operator_equal_v = has_operator_equal<T>::value
 
template<typename T >
constexpr bool has_operator_less_than_v = has_operator_less_than<T>::value
 
template<typename Stream , typename T >
constexpr bool has_ostream_operator_v = has_ostream_operator<Stream, T>::value
 
template<typename Stream , typename T >
constexpr bool has_istream_operator_v = has_istream_operator<Stream, T>::value
 
template<typename Stream , typename T >
constexpr bool has_stream_operator_v = has_ostream_operator_v<Stream, T> && has_istream_operator_v<Stream, T>
 

Typedef Documentation

◆ compare_eq_result

template<typename ... T>
using QTypeTraits::compare_eq_result = std::enable_if_t<std::conjunction_v<QTypeTraits::has_operator_equal<T>...>, bool>

Definition at line 247 of file qttypetraits.h.

◆ compare_eq_result_container

template<typename Container , typename ... T>
using QTypeTraits::compare_eq_result_container = std::enable_if_t<std::conjunction_v<QTypeTraits::has_operator_equal_container<Container, T>...>, bool>

Definition at line 250 of file qttypetraits.h.

◆ compare_lt_result

template<typename ... T>
using QTypeTraits::compare_lt_result = std::enable_if_t<std::conjunction_v<QTypeTraits::has_operator_less_than<T>...>, bool>

Definition at line 253 of file qttypetraits.h.

◆ compare_lt_result_container

template<typename Container , typename ... T>
using QTypeTraits::compare_lt_result_container = std::enable_if_t<std::conjunction_v<QTypeTraits::has_operator_less_than_container<Container, T>...>, bool>

Definition at line 256 of file qttypetraits.h.

◆ has_istream_operator_container

template<typename Stream , typename Container , typename T >
using QTypeTraits::has_istream_operator_container = std::disjunction<std::is_base_of<Container, T>, QTypeTraits::has_istream_operator<Stream, T>>

Definition at line 286 of file qttypetraits.h.

◆ has_operator_equal_container

template<typename Container , typename T >
using QTypeTraits::has_operator_equal_container = std::disjunction<std::is_base_of<Container, T>, QTypeTraits::has_operator_equal<T>>

Definition at line 236 of file qttypetraits.h.

◆ has_operator_less_than_container

template<typename Container , typename T >
using QTypeTraits::has_operator_less_than_container = std::disjunction<std::is_base_of<Container, T>, QTypeTraits::has_operator_less_than<T>>

Definition at line 244 of file qttypetraits.h.

◆ has_ostream_operator_container

template<typename Stream , typename Container , typename T >
using QTypeTraits::has_ostream_operator_container = std::disjunction<std::is_base_of<Container, T>, QTypeTraits::has_ostream_operator<Stream, T>>

Definition at line 276 of file qttypetraits.h.

◆ Promoted

template<typename T , typename U >
using QTypeTraits::Promoted = typename detail::Promoted<T, U>::type

Definition at line 103 of file qttypetraits.h.

Variable Documentation

◆ has_istream_operator_v

template<typename Stream , typename T >
bool QTypeTraits::has_istream_operator_v = has_istream_operator<Stream, T>::value
inlineconstexpr

Definition at line 284 of file qttypetraits.h.

◆ has_operator_equal_v

template<typename T >
bool QTypeTraits::has_operator_equal_v = has_operator_equal<T>::value
inlineconstexpr

Definition at line 233 of file qttypetraits.h.

◆ has_operator_less_than_v

template<typename T >
bool QTypeTraits::has_operator_less_than_v = has_operator_less_than<T>::value
inlineconstexpr

Definition at line 241 of file qttypetraits.h.

◆ has_ostream_operator_v

template<typename Stream , typename T >
bool QTypeTraits::has_ostream_operator_v = has_ostream_operator<Stream, T>::value
inlineconstexpr

Definition at line 273 of file qttypetraits.h.

◆ has_stream_operator_v

template<typename Stream , typename T >
bool QTypeTraits::has_stream_operator_v = has_ostream_operator_v<Stream, T> && has_istream_operator_v<Stream, T>
inlineconstexpr

Definition at line 289 of file qttypetraits.h.

◆ is_dereferenceable_v

template<typename T >
bool QTypeTraits::is_dereferenceable_v = is_dereferenceable<T>::value
inlineconstexpr

Definition at line 228 of file qttypetraits.h.