single_view
클래스(C++ 표준 라이브러리)
요소가 하나만 있는 뷰입니다. 이 보기는 하나 이상의 요소가 있는 뷰와 함께 제공해야 하는 코드를 호출하는 테스트 용도로 유용합니다.
구문
template<std::copy_constructible T>
requires std::is_object_v<T>
class single_view : public ranges::view_interface<single_view<T>>
템플릿 매개 변수
T
요소의 형식입니다.
특성 보기
다음 항목에 대한 설명은 클래스 특성 보기를 참조 하세요.
특성 | 설명 |
---|---|
범위 어댑터 | views::single |
기본 범위 | None |
요소 형식 | 만들 때 single_view 지정됨 |
반복기 범주 보기 | contiguous_range |
크기 | 항상 1을 반환합니다. |
반복 const 가능 |
예 |
공통 범위 | 예 |
빌린 범위 | 아니요 |
멤버
멤버 함수 | 설명 |
---|---|
생성자C++20 | 를 생성합니다 single_view . |
begin C++20 |
요소에 대한 반복기를 가져옵니다. |
data C++20 |
요소에 대한 포인터를 가져옵니다. |
end C++20 |
보기의 끝에 있는 sentinel을 가져옵니다. |
size C++20 |
요소 수를 가져옵니다. 항상 1 를 반환합니다. |
에서 상속됨 view_interface |
설명 |
back C++20 |
요소를 가져옵니다. |
empty C++20 |
뷰가 비어 있는지 테스트합니다(항상 반환 false 됨). |
front C++20 |
요소를 가져옵니다. |
operator[] C++20 |
지정된 위치에 요소를 가져옵니다(위치 0만 유효). |
operator bool C++20 |
뷰가 비어 있지 않은지 테스트합니다(항상 반환 false 됨). |
설명
범위를 만드는 single_view
가장 좋은 방법은 범위 어댑터를 사용하는 views::single
것입니다. 범위 어댑터는 뷰 클래스를 만드는 데 사용되는 방법입니다. 사용자 고유의 사용자 지정 보기 형식을 만들려는 경우 보기 형식이 노출됩니다.
템플릿 값이 single_view
아닌 경우 이 값은 수정할 수 있습니다 const
. 예: single_view<const float> sv{3.14} // this value can't be modified because it's const
요구 사항
헤더: <ranges>
(C++20 이후)
네임스페이스: std::ranges
컴파일러 옵션: /std:c++20
이상이 필요합니다.
생성자
single_view
의 인스턴스를 만듭니다.
1) single_view() = default;
2) constexpr explicit single_view(const T& t);
3) constexpr explicit single_view(T&& t);
4) template<class... Args>
requires constructible_from<T, Args...>
constexpr single_view(in_place_t, Args&&... args);
매개 변수
t
요소 값입니다.
템플릿 매개 변수 형식에 대한 자세한 내용은 템플릿 매개 변수를 참조 하세요.
설명
범위를 만드는 single_view
가장 좋은 방법은 범위 어댑터를 사용하는 views::single
것입니다.
1) 기본 생성되는 지정된 형식의 단일 요소를 사용하여 만듭니 single_view
다. 예를 들어 기본적으로 single_view<float> sv{}
생성되는 형식 float
의 단일 요소를 사용하여 만듭니다 single_view
0.0
.
2) 지정된 인수에서 복사 초기화되는 지정된 형식의 단일 요소를 사용하여 만듭니 single_view
다. 예를 들어 single_view<myObjectType> sv{myObject}
인수에서 복사 초기화되는 형식 myObjectType
의 단일 요소를 사용하여 만듭니다single_view
.
3) 인수에서 이동 초기화되는 지정된 형식의 단일 요소를 사용하여 만듭니 single_view
다.
4) 지정된 형식(std::forward<Args>(args)...)
의 단일 요소를 사용하여 만듭니 single_view
다.
본보기 single_view
/// requires /std:c++20 or higher
#include <ranges>
#include <iostream>
#include <string>
#include <tuple>
int main()
{
std::ranges::single_view<int> sv{7};
std::cout << sv.front() << " " << *sv.data() << "\n"; // 7 7
std::ranges::single_view<std::tuple<int, std::string>> sv2{{6502, "8-bit"}};
std::cout << std::get<0>(sv2[0]) << " " << std::get<1>(sv2[0]) << "\n"; // 6502 8-bit
}
7 7
6502 8-bit
begin
뷰의 단일 요소에 대한 포인터를 가져옵니다.
constexpr T* begin() noexcept;
constexpr const T* begin() const noexcept;
매개 변수
없음.
반환 값
내의 단일 요소에 대한 포인터입니다 single_view
.
data
의 단일 요소에 대한 포인터를 가져옵니다 single_view
.
constexpr T* data() noexcept;
constexpr const T* data() const noexcept;
매개 변수
없음.
반환 값
의 요소에 대한 포인터입니다 single_view
.
end
요소 뒤의 sentinel에 대한 포인터를 가져옵니다.
constexpr T* end() noexcept;
constexpr const T* end() const noexcept;
매개 변수
없음.
반환 값
요소 뒤에 있는 sentinel에 대한 포인터입니다.
size
보기의 요소 수를 가져옵니다. 항상 1
를 반환합니다.
static constexpr size_t size() noexcept;
매개 변수
없음.
반환 값
1