---
name: "std::ranges::viewable_range"
section: "3cxx"
platform: "linux"
package: "libstdc++-12-doc"
version: "12.4.0-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/std::ranges::viewable_range/3cxx"
---

# std::ranges::viewable\_range(3cxx)

A range which can be safely converted to a view.

## NAME

std::ranges::viewable\_range - A range which can be safely converted to a view.

## SYNOPSIS

`#include <ranges>`

## Concept definition

```
template<typename _Tp>
concept std::ranges::viewable_range =  range<_Tp>
      && ((view<remove_cvref_t<_Tp>> && constructible_from<remove_cvref_t<_Tp>, _Tp>)
          || (!view<remove_cvref_t<_Tp>>
              && (is_lvalue_reference_v<_Tp>
                  || (movable<remove_reference_t<_Tp>>
                      && !__detail::__is_initializer_list<remove_cvref_t<_Tp>>))))
```

## Detailed Description

A range which can be safely converted to a view.

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
