QSpan Class

template <typename T, std::size_t E = std::size_t(-1)> class QSpan

인접한 데이터에 대한 비소유 컨테이너. 더 보기...

헤더: #include <QSpan>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
이후: Qt 6.7

참고: 이 클래스의 모든 함수는 재인용됩니다.

공용 형

공용 함수

QSpan()
QSpan(QSpan<S, N> other)
QSpan(Range &&r)
QSpan(const std::array<S, N> &arr)
QSpan(q20::type_identity_t<T> (&)[N] arr)
QSpan(std::array<S, N> &arr)
QSpan(std::initializer_list<QSpan<T, E>::value_type> il)
QSpan(std::span<S, N> other)
QSpan(It first, It last)
QSpan(It first, qsizetype count)
QSpan(const QSpan<T, E> &other)
QSpan(QSpan<T, E> &&other)
~QSpan()
auto back() const
auto begin() const
auto cbegin() const
auto cend() const
auto crbegin() const
auto crend() const
auto data() const
auto empty() const
auto end() const
auto first() const
auto first(QSpan<T, E>::size_type n) const
auto front() const
auto isEmpty() const
auto last() const
auto last(QSpan<T, E>::size_type n) const
auto rbegin() const
auto rend() const
auto size() const
auto size_bytes() const
auto sliced(QSpan<T, E>::size_type pos) const
auto sliced(QSpan<T, E>::size_type pos, QSpan<T, E>::size_type n) const
auto subspan() const
auto subspan() const
auto subspan(QSpan<T, E>::size_type pos) const
auto subspan(QSpan<T, E>::size_type pos, QSpan<T, E>::size_type n) const
QSpan<T, E> &operator=(QSpan<T, E> &&other)
QSpan<T, E> &operator=(const QSpan<T, E> &other)
QSpan<T, E>::reference operator[](QSpan<T, E>::size_type idx) const

정적 공용 멤버

const std::size_t extent
(since 6.8) auto as_bytes(QSpan<T, E> s)
(since 6.8) auto as_writable_bytes(QSpan<T, E> s)

상세 설명

QSpan은 다른 인접한 컨테이너의 인접한 부분을 참조합니다. QList 또는 std::vector와 같은 소유 컨테이너를 먼저 구성할 필요 없이 모든 종류의 인접한 컨테이너에 대한 인터페이스 유형으로 작동합니다.

QSpan이 참조하는 데이터는 배열(또는 QList, std::vector, QVarLengthArray 등과 같은 배열 호환 데이터 구조)로 표현될 수 있습니다. QSpan 자체는 데이터에 대한 포인터를 저장할 뿐이므로 사용자는 QSpan 객체가 참조하는 데이터보다 오래 지속되지 않도록 해야 합니다.

QStringView, QLatin1StringViewQUtf8StringView 와 같은 뷰와 달리 참조된 데이터는 QSpan 개체를 통해 수정할 수 있습니다. 이를 방지하려면 const T ( Const and Mutable Spans 참조 ) 위에 QSpan을 구성하세요:

int numbers[] = {0, 1, 2};
QSpan<int> span = numbers;
span[0] = 42;
// numbers == {42, 1, 2};
QSpan<const int> cspan = numbers;
cspan[0] = 0; // ERROR: cspan[0] is read-only

가변 크기 및 고정 크기 스팬

QSpan은 고정 크기 또는 가변 크기일 수 있습니다.

가변 크기 스팬은 위의 예제에서 볼 수 있듯이 두 번째 템플릿 인수를 생략하거나 std::dynamic_extent 으로 설정하여 구성합니다(단, C++20 빌드에서만 사용 가능).

고정 크기 스팬은 두 번째 템플릿 인수로 숫자를 전달하여 형성됩니다:

int numbers[] = {0, 1, 2};
QSpan<int, 3> span = numbers;
QSpan<const int, 3> = numbers; // also OK

이름에서 알 수 있듯이 고정 크기 스팬의 size()는 컴파일 타임에 고정되는 반면 가변 크기 스팬의 size()은 런타임에만 결정됩니다.

고정 크기 스팬은 기본적으로 구성할 수 없습니다( extent 이 0이 아닌 경우). 가변 크기 스팬은 기본적으로 구성 가능하며 data() == nullptrsize() == 0 을 갖습니다.

고정 크기 스팬은 암시적으로 가변 크기 스팬으로 변환할 수 있습니다. 반대 방향(가변 길이에서 고정 길이로의 변환)에는 두 스팬의 크기가 일치해야 한다는 전제 조건이 있습니다.

상수 및 가변 스팬

컨테이너를 소유하는 경우와 달리, const 은 QSpan에서 얕습니다. const QSpan을 통해 데이터를 수정할 수 있지만 QSpan<const T> 을 통해서는 불가능하며 begin() 및 end()은 const/non-const 에서 오버로드되지 않습니다. 하지만 cbegin() 및 cend()은 T 이 const가 아니더라도 데이터 수정을 방지하는 const_iterator를 반환합니다:

int numbers[] = {0, 1, 2};
const QSpan<int> span = numbers;
span.front() = 42;   // OK, numbers[0] == 42 now
*span.begin() = 31;  // OK, numbers[0] == 31 now
*span.cbegin() = -1; // ERROR: cannot assign through a const_iterator

기타 속성

QSpan은 참조-대-const가 아닌 값으로 전달해야 합니다:

void consume(QSpan<const int> data); // OK
void consume(const QSpan<const int> &data); // works, but is non-idiomatic and less efficient

QSpan<T,N>리터럴 타입인지 여부에 관계없이 T 가 리터럴 타입인지 여부에 관계없이.

QSpan과 std::span 비교

QSpan은 std::span과 매우 유사하게 모델링되어 있지만 여기서는 몇 가지 차이점이 있습니다. 둘 다 암시적으로 서로 변환되므로 코드에서 가장 마음에 드는 것을 자유롭게 선택할 수 있습니다.

  • QSpan은 size_type 로 부호화된 qsizetype을 사용하는 반면 std::spansize_t 을 사용합니다.
  • 모든 QSpan 생성자는 암시적입니다. 많은 std::span 생성자는 explicit 입니다.
  • QSpan은 컨테이너를 소유하는 rvalue로 구성할 수 있지만 std::span 는 그렇지 않습니다.

마지막 두 가지는 컨테이너를 소유하는 함수가 대신 QSpan을 사용하도록 변환될 때 소스 호환성을 위해 필요하며, 이는 Qt에서 매우 중요한 유스케이스입니다. qsizetype의 사용은 나머지 Qt 컨테이너와의 일관성을 위한 것입니다. 불필요한 에러 조건(음수 크기)을 피하기 위해 QSpan 템플릿 인수는 여전히 size_t를 사용합니다.

호환 가능한 이터레이터

이터레이터가 호환 가능한 이터레이터인 경우 QSpan은 이터레이터와 크기 또는 이터레이터 쌍으로 구성할 수 있습니다. 결국 이것은 C++20 std::contiguous_iteratorstd::sentinel_for 을 의미하지만, Qt는 여전히 C++17 을 지원하지만, 원시 포인터만 연속된 이터레이터로 간주됩니다.

호환 가능한 범위

QSpan은 호환 가능한 범위로 구성할 수도 있습니다. 범위는 compatible iterators 이 있으면 호환됩니다.

QList, QStringView, QLatin1StringView, QUtf8StringView도 참조하세요 .

멤버 유형 문서

[alias] QSpan::const_iterator

각각 const T*const_pointer 의 별칭입니다.

const_pointer, iterator, const_reverse_iterator, Const and Mutable Spans도 참조하세요 .

[alias] QSpan::const_pointer

const T*const element_type* 의 별칭입니다.

이 별칭은 STL과의 호환성을 위해 제공됩니다.

element_type, pointer, const_reference, const_iterator, Const and Mutable Spans도 참조하세요 .

[alias] QSpan::const_reference

const T&const element_type& 의 별칭입니다.

이 별칭은 STL과의 호환성을 위해 제공됩니다.

element_type, reference, const_pointer, Const and Mutable Spans도 참조하세요 .

[alias] QSpan::const_reverse_iterator

std::reverse_iterator<const_iterator> 의 별칭입니다.

const_iterator, reverse_iterator, Const and Mutable Spans도 참조하세요 .

[alias] QSpan::difference_type

qptrdiff의 별칭입니다. 이 differs from std::span.

이 별칭은 STL과의 호환성을 위해 제공됩니다.

[alias] QSpan::element_type

T 의 별칭입니다. const 를 포함합니다(있는 경우).

이 별칭은 STL과의 호환성을 위해 제공됩니다.

value_type, pointer, Const and Mutable Spans도 참조하세요 .

[alias] QSpan::iterator

각각 T*pointer 의 별칭입니다. const 를 포함합니다.

pointer, const_iterator, reverse_iterator, Const and Mutable Spans도 참조하세요 .

[alias] QSpan::pointer

각각 T*element_type* 의 별칭입니다. const 를 포함합니다(있는 경우).

이 별칭은 STL과의 호환성을 위해 제공됩니다.

element_type, const_pointer, reference, iterator, Const and Mutable Spans도 참조하세요 .

[alias] QSpan::reference

각각 T&element_type& 의 별칭입니다. const 를 포함합니다(있는 경우).

이 별칭은 STL과의 호환성을 위해 제공됩니다.

element_type, const_reference, pointer, Const and Mutable Spans도 참조하세요 .

[alias] QSpan::reverse_iterator

std::reverse_iterator<iterator> 의 별칭입니다. const 를 포함합니다.

iterator, const_reverse_iterator, Const and Mutable Spans도 참조하세요 .

[alias] QSpan::size_type

qsizetype의 별칭입니다. 이 differs from std::span.

이 별칭은 STL과의 호환성을 위해 제공됩니다.

[alias] QSpan::value_type

T 의 별칭입니다. const 를 제외합니다.

이 별칭은 STL과의 호환성을 위해 제공됩니다.

element_typeConst and Mutable Spans도 참조하세요 .

멤버 함수 문서

[default] QSpan::QSpan(QSpan<T, E> &&other)

[default] QSpan::QSpan(const QSpan<T, E> &other)

[default] QSpan<T, E> &QSpan::operator=(QSpan<T, E> &&other)

[default] QSpan<T, E> &QSpan::operator=(const QSpan<T, E> &other)

[default] QSpan::~QSpan()

이러한 특수 멤버 함수는 암시적으로 정의되어 있습니다.

참고: 이동은 복사와 동일합니다. 참조된 데이터가 아니라 data() 및 size()만 스팬에서 스팬으로 복사됩니다.

[constexpr noexcept] template <typename S, size_t N, QSpan<T, E>::if_qualification_conversion<S> = true> QSpan::QSpan(const std::array<S, N> &arr)

[constexpr noexcept] template <size_t N> QSpan::QSpan(q20::type_identity_t<T> (&)[N] arr)

[constexpr noexcept] template <typename S, size_t N, QSpan<T, E>::if_qualification_conversion<S> = true> QSpan::QSpan(std::array<S, N> &arr)

제공된 배열의 데이터를 참조하는 QSpan 을 생성합니다 arr.

참고: 이 생성자는 다음과 같은 경우에만 과부하 해결에 참여합니다.

  • N 또는 extentstd::dynamic_extent 이거나, 그렇지 않으면 extent == N
  • 와 같고 S 또는 const ST 와 같은 경우에만 과부하 해결에 참여합니다.

참고: q20::type_identity_t 는 C++20 의 C++17 백포트입니다. std::type_identity_t.

[constexpr noexcept] template <typename S, size_t N, QSpan<T, E>::if_qualification_conversion<S> = true> QSpan::QSpan(QSpan<S, N> other)

[constexpr noexcept] template <typename S, size_t N, QSpan<T, E>::if_qualification_conversion<S> = true> QSpan::QSpan(std::span<S, N> other)

제공된 스팬의 데이터를 참조하는 QSpan 을 생성합니다 other.

참고: 이 생성자는 다음과 같은 경우에만 과부하 해결에 참여합니다.

  • N 또는 extentstd::dynamic_extent 또는 extent == N
  • 와 같고 S 또는 const ST 와 같은 경우에만 과부하 해결에 참여합니다.

[constexpr noexcept] auto QSpan::empty() const

[constexpr noexcept] auto QSpan::isEmpty() const

스팬이 비어 있는지 여부, 즉 size() == 0 를 반환합니다.

이 함수는 동일한 기능을 수행합니다: empty()는 STL 호환성을 위해 제공되고 isEmpty()는 Qt 호환성을 위해 제공됩니다.

size() 및 size_bytes()도 참조하십시오 .

[constexpr] auto QSpan::sliced(QSpan<T, E>::size_type pos) const

[constexpr] auto QSpan::subspan(QSpan<T, E>::size_type pos) const

첫 번째 pos 요소를 삭제한 후 이 스팬의 나머지 부분을 참조하는 size() - pos 크기의 variable-sized 스팬을 반환합니다.

pos 는 음수가 아니어야 합니다.

이 스팬은 최소 pos 요소(E >= pos size() >= pos)를 포함해야 하며, 그렇지 않으면 동작이 정의되지 않습니다.

subspan()는 STL 호환성을 위해 제공되고 sliced()는 Qt XML 호환성을 위해 제공됩니다.

subspan(), first(QSpan<T,E>::size_type) 및 last(QSpan<T,E>::size_type)도 참조하세요 .

[constexpr] auto QSpan::sliced(QSpan<T, E>::size_type pos, QSpan<T, E>::size_type n) const

[constexpr] auto QSpan::subspan(QSpan<T, E>::size_type pos, QSpan<T, E>::size_type n) const

pos 에서 시작하는 이 스팬의 n 요소를 참조하는 n 크기의 variable-sized 스팬을 반환합니다.

posn 는 모두 음수가 아니어야 합니다.

이 스팬은 최소 pos + n 요소(E >= pos + n size() >= pos + n)를 포함해야 하며, 그렇지 않으면 동작이 정의되지 않습니다.

subspan()는 STL 호환성을 위해 제공되고 sliced()는 Qt XML 호환성을 위해 제공됩니다.

subspan(), first(QSpan<T,E>::size_type) 및 last(QSpan<T,E>::size_type)도 참조하세요 .

[default] QSpan::QSpan()

기본 생성자입니다.

이 생성자는 E 가 영(0) 또는 std::dynamic_extent 인 경우에만 존재합니다. 즉, 고정 0 크기 또는 가변 크기 스팬만 기본적으로 생성할 수 있습니다.

extentVariable-Size and Fixed-Size Spans참조하세요 .

[constexpr] template <typename Range, QSpan<T, E>::if_compatible_range<Range> = true> QSpan::QSpan(Range &&r)

제공된 범위의 데이터를 참조하는 QSpan을 생성합니다 r.

참고: 이 생성자는 Rangea compatible range 인 경우에만 과부하 해결에 참여합니다.

[constexpr] QSpan::QSpan(std::initializer_list<QSpan<T, E>::value_type> il)

제공된 이니셜라이저 목록 il 에 있는 데이터를 참조하여 QSpan을 생성합니다.

참고: 이 생성자는 Tconst-적격인 경우에만 과부하 해결에 참여합니다.

참고: Estd::dynamic_extent 인 경우에만 이 생성자는 noexcept 입니다.

참고: Estd::dynamic_extent 이 아니고 il 의 크기가 E 이 아닌 경우 동작이 정의되지 않습니다.

Const and Mutable Spans도 참조하세요 .

[constexpr] template <typename It, QSpan<T, E>::if_compatible_iterator<It> = true> QSpan::QSpan(It first, It last)

first 에서 시작하고 길이가 (last - first) 인 데이터를 참조하는 QSpan을 구성합니다.

[first, last) 는 유효한 범위여야 합니다.

참고: 이 생성자는 Ita compatible iterator 인 경우에만 과부하 해결에 참여합니다.

[constexpr] template <typename It, QSpan<T, E>::if_compatible_iterator<It> = true> QSpan::QSpan(It first, qsizetype count)

first 에서 시작하고 길이가 count 인 데이터를 참조하는 QSpan을 구성합니다.

[first, count) 는 유효한 범위여야 합니다.

참고: 이 생성자는 Ita compatible iterator 인 경우에만 과부하 해결에 참여합니다.

[constexpr] auto QSpan::back() const

스팬의 마지막 요소에 대한 참조를 반환합니다.

스팬이 비어 있지 않아야 하며, 그렇지 않으면 동작이 정의되지 않습니다.

operator[](), front(), size(), empty() 및 Const and Mutable Spans참조하세요 .

[constexpr noexcept] auto QSpan::begin() const

스팬의 시작을 가리키는 인터레이터를 반환합니다.

QSpan 이터레이터는 포인터일 뿐이므로 data()을 호출하는 것과 동일합니다.

end(), cbegin(), rbegin(), crbegin(), data() 및 Const and Mutable Spans도 참조하세요 .

[constexpr noexcept] auto QSpan::cbegin() const

스팬의 시작을 가리키는 const_iterator 을 반환합니다.

Tconst 이 아닌 경우에도 읽기 전용 이터레이터를 반환합니다:

QSpan<int> span = ~~~;
*span.begin() = 42; // OK
*span.cbegin() = 42; // ERROR: cannot assign through a const_iterator

cend(), begin(), crbegin(), rbegin(), data() 및 Const and Mutable Spans도 참조하세요 .

[constexpr noexcept] auto QSpan::cend() const

스팬의 끝을 가리키는 const_iterator 을 반환합니다.

cbegin(), end(), crend(), rend(), data(), size() 및 Const and Mutable Spans도 참조하세요 .

[constexpr noexcept] auto QSpan::crbegin() const

반전된 스팬의 시작을 가리키는 const_reverse_iterator 을 반환합니다.

crend(), rbegin(), cbegin(), begin() 및 Const and Mutable Spans도 참조하세요 .

[constexpr noexcept] auto QSpan::crend() const

역방향 스팬의 끝을 가리키는 const_reverse_iterator 을 반환합니다.

crbegin(), rend(), cend(), end() 및 Const and Mutable Spans도 참조하세요 .

[constexpr noexcept] auto QSpan::data() const

스팬의 시작 부분에 대한 포인터를 반환합니다.

begin()를 호출하는 것과 동일합니다.

begin(), front() 및 Const and Mutable Spans참조하세요 .

[constexpr noexcept] auto QSpan::end() const

스팬의 끝을 가리키는 이터레이터를 반환합니다.

QSpan 이터레이터는 포인터일 뿐이므로 data() + size() 을 호출하는 것과 동일합니다.

begin(), cend(), rend(), crend(), data(), size(), Const and Mutable Spans도 참조하세요 .

[constexpr noexcept(...)] template <std::size_t Count> auto QSpan::first() const

*this 의 첫 번째 Count 요소를 참조하는 Count 크기의 fixed-sized 스팬을 반환합니다.

스팬은 최소 Count 요소(E >= Count size() >= Count)를 포함해야 하며, 그렇지 않으면 동작이 정의되지 않습니다.

참고: 이 함수는 subspan_always_succeeds_v<Count>true 인 경우를 제외하고는 작동하지 않습니다.

first(QSpan<T,E>::size_type), last() 및 subspan()도 참조하세요 .

[constexpr] auto QSpan::first(QSpan<T, E>::size_type n) const

*this 의 첫 번째 n 요소를 참조하는 n 크기의 variable-sized 스팬을 반환합니다.

n 는 음수가 아니어야 합니다.

스팬은 최소 n 요소(E >= n size() >= n)를 포함해야 하며, 그렇지 않으면 동작이 정의되지 않습니다.

first<N>(), last(QSpan<T,E>::size_type), subspan(QSpan<T,E>::size_type), subspan(QSpan<T,E>::size_type, QSpan<T,E>::size_type) 및 sliced()도 참조하세요 .

[constexpr] auto QSpan::front() const

스팬의 첫 번째 요소에 대한 참조를 반환합니다.

스팬이 비어 있지 않아야 하며, 그렇지 않으면 동작이 정의되지 않습니다.

operator[](), back(), size(), empty() 및 Const and Mutable Spans참조하세요 .

[constexpr noexcept(...)] template <std::size_t Count> auto QSpan::last() const

*this 의 마지막 Count 요소를 참조하는 Count 크기의 fixed-sized 스팬을 반환합니다.

스팬은 최소 Count 요소(E >= Count size() >= Count)를 포함해야 하며, 그렇지 않으면 동작이 정의되지 않습니다.

참고: 이 함수는 subspan_always_succeeds_v<Count>true 인 경우를 제외하고는 작동하지 않습니다.

last(QSpan<T,E>::size_type), first() 및 subspan()도 참조하세요 .

[constexpr] auto QSpan::last(QSpan<T, E>::size_type n) const

*this 의 마지막 n 요소를 참조하는 n 크기의 variable-sized 스팬을 반환합니다.

n 는 음수가 아니어야 합니다.

스팬은 최소 n 요소(E >= n size() >= n)를 포함해야 하며, 그렇지 않으면 동작이 정의되지 않습니다.

last(), first(QSpan<T,E>::size_type), subspan(QSpan<T,E>::size_type), subspan(QSpan<T,E>::size_type, QSpan<T,E>::size_type) 및 sliced()도 참조하세요 .

[constexpr noexcept] auto QSpan::rbegin() const

반전된 스팬의 시작을 가리키는 reverse_iterator 을 반환합니다.

rend(), crbegin(), begin(), cbegin() 및 Const and Mutable Spans도 참조하세요 .

[constexpr noexcept] auto QSpan::rend() const

역방향 스팬의 끝을 가리키는 reverse_iterator 을 반환합니다.

rbegin(), crend(), end(), cend() 및 Const and Mutable Spans도 참조하세요 .

[constexpr noexcept] auto QSpan::size() const

스팬의 크기, 즉 참조하는 요소의 수를 반환합니다.

size_bytes(), empty() 및 isEmpty()도 참조하세요 .

[constexpr noexcept] auto QSpan::size_bytes() const

스팬의 크기, 즉 요소 수에 sizeof(T) 을 곱한 값을 바이트 단위로 반환합니다.

size(), empty() 및 isEmpty()도 참조하세요 .

[constexpr noexcept(...)] template <std::size_t Offset, std::size_t Count> auto QSpan::subspan() const

Offset 에서 시작하는 이 스팬의 Count 요소를 참조하는 Count 크기의 스팬을 반환합니다.

*this 이 가변 크기 스팬인 경우 반환 유형은 가변 크기 스팬이고, 그렇지 않으면 고정 크기 스팬입니다.

이 스팬은 최소 Offset + Count 요소(E >= Offset + Count size() >= Offset + Count)를 포함해야 하며, 그렇지 않으면 동작이 정의되지 않습니다.

참고: 이 함수는 subspan_always_succeeds_v<Offset + Count>true 인 경우를 제외하고는 작동하지 않습니다.

subspan(QSpan<T,E>::size_type, QSpan<T,E>::size_type), subspan(), first(), last() 및 Variable-Size and Fixed-Size Spans도 참조하세요 .

[constexpr noexcept(...)] template <std::size_t Offset> auto QSpan::subspan() const

첫 번째 Offset 요소를 삭제한 후 이 스팬의 나머지 부분을 참조하는 E - Offset 크기의 스팬을 반환합니다.

*this 이 가변 크기 스팬인 경우 반환 유형은 가변 크기 스팬이고, 그렇지 않으면 고정 크기 스팬입니다.

이 스팬은 최소 Offset 요소(E >= Offset size() >= Offset)를 포함해야 하며, 그렇지 않으면 동작이 정의되지 않습니다.

참고: 이 함수는 subspan_always_succeeds_v<Offset>true 인 경우를 제외하고는 작동하지 않습니다.

subspan(QSpan<T,E>::size_type), subspan(), first(), last() 및 Variable-Size and Fixed-Size Spans도 참조하세요 .

[constexpr] QSpan<T, E>::reference QSpan::operator[](QSpan<T, E>::size_type idx) const

스팬의 idx 인덱스에 있는 요소에 대한 참조를 반환합니다.

인덱스는 idx >= 0 및 idx < size() 범위 내에 있어야 하며, 그렇지 않으면 동작이 정의되지 않습니다.

front(), back(), size(), empty() 및 Const and Mutable Spans참조하세요 .

멤버 변수 문서

const std::size_t QSpan::extent

QSpan<T, E> 의 두 번째 템플릿 인수, 즉 E 입니다. variable-sized spans 의 경우 std::dynamic_extent 입니다.

참고: QSpan 의 다른 모든 크기와 인덱스는 qsizetype을 사용하지만, 이 변수는 E 과 같이 실제로는 size_t 유형이므로 std::spanstd::dynamic_extent 과 호환됩니다.

size()도 참조하세요 .

관련 비회원

[noexcept, since 6.8] auto as_bytes(QSpan<T, E> s)

ssize()가 s.size_bytes() 와 같은 QSpan<const std::byte, E'> 로 반환합니다.

Estd::dynamic_extent 인 경우 E' 도 마찬가지입니다. 그렇지 않으면 E' = E * sizeof(T) 입니다.

참고: q20::dynamic_extent 는 C++20의 C++17 백포트입니다. std::dynamic_extent.

이 함수는 Qt 6.8에 도입되었습니다.

as_writable_bytes(), size_bytes() 및 Const and Mutable Spans참조하십시오 .

[noexcept, since 6.8] auto as_writable_bytes(QSpan<T, E> s)

ssize()가 s.size_bytes() 와 같은 QSpan<std::byte, E'> 로 반환합니다.

Estd::dynamic_extent 인 경우 E' 도 마찬가지입니다. 그렇지 않으면 E' = E * sizeof(T) 입니다.

참고: 이 함수는 !std::is_const_v<T> 인 경우에만 과부하 해결에 참여합니다.

참고: q20::dynamic_extent 는 C++20 의 C++17 백포트입니다. std::dynamic_extent.

이 함수는 Qt 6.8에 도입되었습니다.

as_bytes(), size_bytes() 및 Const and Mutable Spans참조하십시오 .

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.