[string.view.deduct]

# 27 Strings library [[strings]](./#strings)

## 27.3 String view classes [[string.view]](string.view#deduct)

### 27.3.3 Class template basic_string_view [[string.view.template]](string.view.template#string.view.deduct)

#### 27.3.3.3 Deduction guides [string.view.deduct]

[ð](#itemdecl:1)

`template<class It, class End>
  basic_string_view(It, End) -> basic_string_view<iter_value_t<It>>;
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L901)

*Constraints*: 

- [(1.1)](#1.1)

  It satisfies [contiguous_iterator](iterator.concept.contiguous#concept:contiguous_iterator "24.3.4.14 Concept contiguous_­iterator [iterator.concept.contiguous]")[.](#1.1.sentence-1)

- [(1.2)](#1.2)

  End satisfies [sized_sentinel_for](iterator.concept.sizedsentinel#concept:sized_sentinel_for "24.3.4.8 Concept sized_­sentinel_­for [iterator.concept.sizedsentinel]")<It>[.](#1.2.sentence-1)

[ð](#itemdecl:2)

`template<class R>
  basic_string_view(R&&) -> basic_string_view<ranges::range_value_t<R>>;
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L915)

*Constraints*: R satisfies ranges​::​[contiguous_range](range.refinements#concept:contiguous_range "25.4.6 Other range refinements [range.refinements]")[.](#2.sentence-1)
