# std::ranges::join_view<V>::begin

< cpp‎ | ranges‎ | join view

constexpr auto begin(); | (1) | (C++20 起)
constexpr auto begin() const requires ranges::input_range<const V> && std::is_reference_v<ranges::range_reference_t<const V>>; | (2) | (C++20 起)

返回指向 `join_view` 首元素的迭代器。给定 `base_` 为底层视图，

1) 若 __SimpleView<V> 得到满足且 ranges::range_reference_t<V> 为引用类型则等价于 return /*iterator*/<true>{*this, ranges::begin(base_)}; 。否则等价于 return /*iterator*/<false>{*this, ranges::begin(base_)}; 。
2) 等价于 return /*iterator*/<true>{*this, ranges::begin(base_)}; 。

### 参数

（无）

### 返回值

到首元素的引用。

### 注解

在 ranges::range_reference_t<V> 不是引用类型，即解引用 `V` 的迭代器返回纯右值临时量时， `join_view` 仅为 `input_range` ，此情况下仅支持单趟迭代，而重复调用 `begin()` 可能不给出有意义的结果。

### 示例

| 本节未完成 原因：暂无示例

### 参阅

end (C++20) | 返回指向末尾的迭代器或哨位 (公开成员函数)
ranges::begin (C++20) | 返回指向范围起始的迭代器 (定制点对象)