Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qspan.h File Reference

(699ddcb15b5e981d32ea65d1c1a12f8fa0b06e0d)

#include <QtCore/qcompilerdetection.h>
#include <QtCore/qtypes.h>
#include <QtCore/qcontainerfwd.h>
#include <array>
#include <cstddef>
#include <cassert>
#include <initializer_list>
#include <QtCore/q20iterator.h>
#include <QtCore/q20memory.h>
#include <QtCore/q20type_traits.h>
+ Include dependency graph for qspan.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  QSpanPrivate::is_qspan_helper< T >
 
struct  QSpanPrivate::is_qspan_helper< QSpan< T, E > >
 
struct  QSpanPrivate::is_qspan_helper< QSpanBase< T, E > >
 
struct  QSpanPrivate::is_std_span_helper< T >
 
struct  QSpanPrivate::is_std_array_helper< T >
 
struct  QSpanPrivate::is_std_array_helper< std::array< T, N > >
 
class  QSpanPrivate::QSpanCommon< T >
 
struct  QSpanPrivate::QSpanCommon< T >::is_compatible_range_helper< Range, typename >
 
struct  QSpanPrivate::QSpanCommon< T >::is_compatible_range_helper< Range, std::void_t< QSpanPrivate::iterator_t< Range > > >
 
class  QSpanPrivate::QSpanBase< T, E >
 
class  QSpanPrivate::QSpanBase< T, q20::dynamic_extent >
 
class  QSpan< T, E >
 

Namespaces

namespace  q20
 
namespace  QSpanPrivate
 
namespace  QSpanPrivate::AdlTester
 

Macros

#define MAKE_ADL_TEST(what)
 

Typedefs

template<typename T >
using QSpanPrivate::is_qspan = is_qspan_helper<q20::remove_cvref_t<T>>
 
template<typename T >
using QSpanPrivate::is_std_span = is_std_span_helper<q20::remove_cvref_t<T>>
 
template<typename T >
using QSpanPrivate::is_std_array = is_std_array_helper<q20::remove_cvref_t<T>>
 
template<typename From , typename To >
using QSpanPrivate::is_qualification_conversion
 
template<typename Range >
using QSpanPrivate::iterator_t = decltype(QSpanPrivate::adl_begin(std::declval<Range&>()))
 
template<typename Range >
using QSpanPrivate::range_reference_t = q20::iter_reference_t<QSpanPrivate::iterator_t<Range>>
 

Functions

template<typename Range >
AdlTester::begin_result< Range > QSpanPrivate::adl_begin (Range &&r)
 
template<typename Range >
AdlTester::data_result< Range > QSpanPrivate::adl_data (Range &&r)
 
template<typename Range >
AdlTester::size_result< Range > QSpanPrivate::adl_size (Range &&r)
 
template<class It , class EndOrSize >
 QSpan (It, EndOrSize) -> QSpan< std::remove_reference_t< q20::iter_reference_t< It > > >
 
template<class T , std::size_t N>
 QSpan (T(&)[N]) -> QSpan< T, N >
 
template<class T , std::size_t N>
 QSpan (std::array< T, N > &) -> QSpan< T, N >
 
template<class T , std::size_t N>
 QSpan (const std::array< T, N > &) -> QSpan< const T, N >
 
template<class R >
 QSpan (R &&) -> QSpan< std::remove_reference_t< QSpanPrivate::range_reference_t< R > > >
 

Variables

constexpr auto q20::dynamic_extent = std::size_t(-1)
 
template<typename From , typename To >
constexpr bool QSpanPrivate::is_qualification_conversion_v = is_qualification_conversion<From, To>::value
 

Macro Definition Documentation

◆ MAKE_ADL_TEST

#define MAKE_ADL_TEST ( what)
Value:
using std:: what; /* bring into scope */ \
template <typename T> using what ## _result = decltype( what (std::declval<T&&>())); \
/* end */

Definition at line 81 of file qspan.h.

Function Documentation

◆ QSpan() [1/5]

template<class T , std::size_t N>
QSpan ( const std::array< T, N > & ) -> QSpan< const T, N >

◆ QSpan() [2/5]

template<class It , class EndOrSize >
QSpan ( It ,
EndOrSize  ) -> QSpan< std::remove_reference_t< q20::iter_reference_t< It > > >

Referenced by QString::replace().

+ Here is the caller graph for this function:

◆ QSpan() [3/5]

template<class R >
QSpan ( R && ) -> QSpan< std::remove_reference_t< QSpanPrivate::range_reference_t< R > > >

◆ QSpan() [4/5]

template<class T , std::size_t N>
QSpan ( std::array< T, N > & ) -> QSpan< T, N >

◆ QSpan() [5/5]

template<class T , std::size_t N>
QSpan ( T(&) [N]) -> QSpan< T, N >