##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::experimental::ranges::Readable

From cppreference.com
< cpp‎ | experimental‎ | ranges

Defined in header `<experimental/ranges/iterator>` |  |
template <class I> concept bool Readable() { return ranges::Movable<I>() && ranges::DefaultConstructible<I>() && requires(const I& i) { typename ranges::value_type_t<I>; typename ranges::reference_t<I>; typename ranges::rvalue_reference_t<I>; { *i } -> ranges::Same<ranges::reference_t<I>>; { ranges::iter_move(i) } -> ranges::Same<ranges::rvalue_reference_t<I>>; } && ranges::CommonReference<ranges::reference_t<I>, ranges::value_type_t<I>&>() && ranges::CommonReference<ranges::reference_t<I>, ranges::rvalue_reference_t<I>>() && ranges::CommonReference<ranges::rvalue_reference_t<I>, const ranges::value_type_t<I>&>() && ranges::Same<std::common_reference_t<ranges::reference_t<I>, ranges::value_type_t<I>>, ranges::value_type_t<I>>() && ranges::Same<std::common_reference_t<ranges::rvalue_reference_t<I>, ranges::value_type_t<I>>, ranges::value_type_t<I>>(); } |  | (ranges TS)

| This section is incomplete Reason: add description and extra caveats

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/iterator/Readable&oldid=89702"
Category:

- Todo with reason