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  is_dereferenceable
struct  is_dereferenceable< T, std::void_t< decltype(std::declval< T >().operator->())> >
struct  has_operator_equal
struct  has_operator_less_than
struct  has_operator_compare_three_way
struct  has_operator_compare_three_way_with
struct  has_ostream_operator
struct  has_ostream_operator< Stream, T, std::void_t< decltype(detail::reference< Stream >()<< detail::const_reference< T >())> >
struct  has_istream_operator
struct  has_istream_operator< Stream, T, std::void_t< decltype(detail::reference< Stream >() > > detail::reference< T >())> >

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 T>
constexpr bool has_operator_compare_three_way_v = has_operator_compare_three_way<T>::value
template<typename T, typename U>
constexpr bool has_operator_compare_three_way_with_v = has_operator_compare_three_way_with<T, U>::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 252 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 255 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 258 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 261 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 313 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 241 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 249 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 303 of file qttypetraits.h.

◆ Promoted

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

Definition at line 108 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 311 of file qttypetraits.h.

◆ has_operator_compare_three_way_v

template<typename T>
bool QTypeTraits::has_operator_compare_three_way_v = has_operator_compare_three_way<T>::value
inlineconstexpr

Definition at line 275 of file qttypetraits.h.

◆ has_operator_compare_three_way_with_v

template<typename T, typename U>
bool QTypeTraits::has_operator_compare_three_way_with_v = has_operator_compare_three_way_with<T, U>::value
inlineconstexpr

Definition at line 277 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 238 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 246 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 300 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 316 of file qttypetraits.h.

◆ is_dereferenceable_v

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

Definition at line 233 of file qttypetraits.h.