# cpp20 Namespace

# cpp20

## Summary

| ### Enumerations ||
|---|---|
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a5f27d58c6f3357a6ea1a89914b395c53{ https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a5f27d58c6f3357a6ea1a89914b395c53aaae6635e044ac56046b2893a529b5114 = 0x11771E, https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a5f27d58c6f3357a6ea1a89914b395c53ad861877da56b8b4ceb35c8cbfdf65bb4 = 0xB16, https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a5f27d58c6f3357a6ea1a89914b395c53a8e5f3adee38c8fccc13c1f3be0143796 = internal::native_endianess() }` | enum |

| ### Typedefs ||
|---|---|
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a81f7735f66baf7185f69d9f3ee6a84aa` | using `typename https://fuchsia.dev/reference/cpp/struct/cpp20/remove-cvref#structcpp20_1_1remove__cvref< T >::type` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a4a4c86cf25a588bf742331fda1872e9a` | using `typename https://fuchsia.dev/reference/cpp/struct/cpp20/type-identity#structcpp20_1_1type__identity< T >::type` |

| ### Functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a3adf2d118af8156aac09040300b304fb(https://fuchsia.dev/reference/cpp/other/singletoncpp20/span#singletoncpp20_1_1span< T, N > s) noexcept` | `https://fuchsia.dev/reference/cpp/other/singletoncpp20/span#singletoncpp20_1_1span< const std::byte, S >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1af9d6e3e706a08b0094f1efd3cb67c108(https://fuchsia.dev/reference/cpp/other/singletoncpp20/span#singletoncpp20_1_1span< T, N > s) noexcept` | `https://fuchsia.dev/reference/cpp/other/singletoncpp20/span#singletoncpp20_1_1span< std::byte, S >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a95d9ac516139e456099ebf122d3bc5b6(F && f, Args &&... args)` | `constexpr::cpp20::internal::front_binder_t< F, Args...>` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1aef2475feed37057a4d30ad24c4100bd1(const From & from)` | `std::enable_if_t< sizeof(To)==sizeof(From)&&std::is_trivially_copyable< To >::value &&std::is_trivially_copyable< From >::value, To >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1aaf46a481949afe4402038a59b2ac3f30(T value)` | `constexpr std::enable_if_t< std::is_unsigned< T >::value, T >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a1a78baae7681477900bd595f693abc88(T value)` | `constexpr std::enable_if_t< std::is_unsigned< T >::value, T >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a9abe3383cec1c9b863dfcf7b964fdcbc(T value)` | `constexpr std::enable_if_t< std::is_unsigned< T >::value, int >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a4426bb5ea047bdd98e37a3ec9b9d7f24(T x) noexcept` | `constexpr std::enable_if_t< std::is_unsigned< T >::value, int >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a9c632565e6883227bce85942f7b14009(T x) noexcept` | `constexpr std::enable_if_t< std::is_unsigned< T >::value, int >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1aa3198044435f6705b399cc3ed0c2abf9(T x) noexcept` | `constexpr std::enable_if_t< std::is_unsigned< T >::value, int >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a7e7fb8b71d51598ea7765b2cc5bfeaa7(T x) noexcept` | `constexpr std::enable_if_t< std::is_unsigned< T >::value, int >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a6dc1c8d38c3d4d4c9fff900cd6d98a78(std::basic_string_view< CharT, Traits > s, decltype(s) suffix)` | `constexpr bool` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1ac106fcfaa41158aa72772043658658ca(std::basic_string_view< CharT, Traits > s, const CharT *suffix)` | `constexpr bool` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1adf03449c0ebb98cbc4d6728e14a65530(std::basic_string_view< CharT, Traits > s, CharT c)` | `constexpr bool` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a946757b39c2d3344a33dec40202e6490(std::deque< T, Alloc > & c, const U & value)` | `std::deque< T, Alloc >::size_type` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a29702b009b9249b3e649ecce526614ab(std::vector< T, Alloc > & c, const U & value)` | `std::vector< T, Alloc >::size_type` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a875de8ffe557fc141d9cabae4429c17b(std::deque< T, Alloc > & c, Pred pred)` | `std::deque< T, Alloc >::size_type` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1ae203d883ed4a6512ba988c336681241f(std::vector< T, Alloc > & c, Pred pred)` | `std::vector< T, Alloc >::size_type` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1add2647b3b765be6e217cca78004df1e1(T & obj, U && new_value)` | `constexpr T` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1ac84a6c0bd8692c342b9ddf4ba63601e2(InputIt first, InputIt last, const T & value)` | `constexpr InputIt` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1ad9f222044f3284747287f0c3b5089ccd(InputIt first, InputIt last, UnaryPredicate p)` | `constexpr InputIt` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a77bc48018339ff6ac9402f49a5cd2068(InputIt first, InputIt last, UnaryPredicate q)` | `constexpr InputIt` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a24001911eceebb0b7f92f3f4a8c17bdb(T value)` | `constexpr std::enable_if_t< std::is_unsigned< T >::value, bool >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a962603c33b708ef2d84469133a5c1aae(F && f, Args &&... args)` | `constexpr std::invoke_result_t< F, Args...>` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a77841df82f69761913be770fa4155642() noexcept` | `constexpr bool` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a6f8d77023a9507106b61cdca34bc00bd(ForwardIt first, ForwardIt end, Comparator comp)` | `constexpr bool` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1ae46d36bceb6d977dc24b3249a23f9184(ForwardIt first, ForwardIt last, const T & value, Comparator comp)` | `constexpr ForwardIt` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a96111f14f9178e2d482916f1d69a5c15(ForwardIt first, ForwardIt last, const T & value)` | `constexpr ForwardIt` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a54965026060b495338bec8dfcf61dc01(T x) noexcept` | `constexpr int` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a057d6a8f9458457d10fdf66a7a81d51f(T x, int s) noexcept` | `constexpr std::enable_if_t< std::is_unsigned< T >::value, T >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a26010317a9aba866cf02d5f226dcc612(T x, int s) noexcept` | `constexpr std::enable_if_t< std::is_unsigned< T >::value, T >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a2c2fac339329f6138880d7723d590b66(RandomIterator first, RandomIterator end, Comparator comp)` | `constexpr void` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a835279a64098e8110137c56dc57f412b(std::basic_string_view< CharT, Traits > s, decltype(s) prefix)` | `constexpr bool` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1ad9a55663e7164b407826ffe62eb476a8(std::basic_string_view< CharT, Traits > s, const CharT *prefix)` | `constexpr bool` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a8c1499b0ef59cdf6efda3e8fa0a80d7b(std::basic_string_view< CharT, Traits > s, CharT c)` | `constexpr bool` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a4884ec36e6501cee3aac7bce29a1b85b(T *pointer) noexcept` | `constexpr T *` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a9463a5a0f60d6cf20bb194969b09c3cc(const T & pointer) noexcept` | `constexpr std::pointer_traits< T >::element_type *` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1a4e6842f2b7592e2da64b464cebc53e85(T(&) a[N])` | `constexpr std::array< std::remove_cv_t< T >, N >` |
| `https://fuchsia.dev/reference/cpp/namespace/cpp20#namespacecpp20_1af440f85c857bc897c92b9767e1834fa4(T(&&) a[N])` | `constexpr std::array< std::remove_cv_t< T >, N >` |

| ### Classes ||
|---|---|
| [cpp20::atomic_ref](https://fuchsia.dev/reference/cpp/class/cpp20/atomic-ref) |   |
| [cpp20::source_location](https://fuchsia.dev/reference/cpp/class/cpp20/source-location) |   |

| ### Structs ||
|---|---|
| [cpp20::remove_cvref](https://fuchsia.dev/reference/cpp/struct/cpp20/remove-cvref) |   |
| [cpp20::type_identity](https://fuchsia.dev/reference/cpp/struct/cpp20/type-identity) |   |

| ### Namespaces ||
|---|---|
| [cpp20::atomic_internal](https://fuchsia.dev/reference/cpp/namespace/cpp20/atomic-internal) |   |

## Enumerations

### endian

```c++
 endian
```

| Properties ||
|---|---|
| `big` |   |
| `little` |   |
| `native` |   |

## Typedefs

### remove_cvref_t

```c++
typename remove_cvref< T >::type remove_cvref_t
```

### type_identity_t

```c++
typename type_identity< T >::type type_identity_t
```

## Functions

### as_bytes

```c++
cpp20::span< const std::byte, S > as_bytes(
  cpp20::span< T, N > s
) noexcept
```

### as_writable_bytes

```c++
cpp20::span< std::byte, S > as_writable_bytes(
  cpp20::span< T, N > s
) noexcept
```

### bind_front

```c++
constexpr::cpp20::internal::front_binder_t< F, Args...> bind_front(
  F && f,
  Args &&... args
)
```

### bit_cast

```c++
std::enable_if_t< sizeof(To)==sizeof(From)&&std::is_trivially_copyable< To >::value &&std::is_trivially_copyable< From >::value, To > bit_cast(
  const From & from
)
```

### bit_ceil

```c++
constexpr std::enable_if_t< std::is_unsigned< T >::value, T > bit_ceil(
  T value
)
```

### bit_floor

```c++
constexpr std::enable_if_t< std::is_unsigned< T >::value, T > bit_floor(
  T value
)
```

### bit_width

```c++
constexpr std::enable_if_t< std::is_unsigned< T >::value, int > bit_width(
  T value
)
```

### countl_one

```c++
constexpr std::enable_if_t< std::is_unsigned< T >::value, int > countl_one(
  T x
) noexcept
```

### countl_zero

```c++
constexpr std::enable_if_t< std::is_unsigned< T >::value, int > countl_zero(
  T x
) noexcept
```

### countr_one

```c++
constexpr std::enable_if_t< std::is_unsigned< T >::value, int > countr_one(
  T x
) noexcept
```

### countr_zero

```c++
constexpr std::enable_if_t< std::is_unsigned< T >::value, int > countr_zero(
  T x
) noexcept
```

### ends_with

```c++
constexpr bool ends_with(
  std::basic_string_view< CharT, Traits > s,
  decltype(s) suffix
)
```

### ends_with

```c++
constexpr bool ends_with(
  std::basic_string_view< CharT, Traits > s,
  const CharT *suffix
)
```

### ends_with

```c++
constexpr bool ends_with(
  std::basic_string_view< CharT, Traits > s,
  CharT c
)
```

### erase

```c++
std::deque< T, Alloc >::size_type erase(
  std::deque< T, Alloc > & c,
  const U & value
)
```

### erase

```c++
std::vector< T, Alloc >::size_type erase(
  std::vector< T, Alloc > & c,
  const U & value
)
```

### erase_if

```c++
std::deque< T, Alloc >::size_type erase_if(
  std::deque< T, Alloc > & c,
  Pred pred
)
```

### erase_if

```c++
std::vector< T, Alloc >::size_type erase_if(
  std::vector< T, Alloc > & c,
  Pred pred
)
```

### exchange

```c++
constexpr T exchange(
  T & obj,
  U && new_value
)
```

### find

```c++
constexpr InputIt find(
  InputIt first,
  InputIt last,
  const T & value
)
```

### find_if

```c++
constexpr InputIt find_if(
  InputIt first,
  InputIt last,
  UnaryPredicate p
)
```

### find_if_not

```c++
constexpr InputIt find_if_not(
  InputIt first,
  InputIt last,
  UnaryPredicate q
)
```

### has_single_bit

```c++
constexpr std::enable_if_t< std::is_unsigned< T >::value, bool > has_single_bit(
  T value
)
```

### invoke

```c++
constexpr std::invoke_result_t< F, Args...> invoke(
  F && f,
  Args &&... args
)
```

### is_constant_evaluated

```c++
constexpr bool is_constant_evaluated() noexcept
```

### is_sorted

```c++
constexpr bool is_sorted(
  ForwardIt first,
  ForwardIt end,
  Comparator comp
)
```

### lower_bound

```c++
constexpr ForwardIt lower_bound(
  ForwardIt first,
  ForwardIt last,
  const T & value,
  Comparator comp
)
```

### lower_bound

```c++
constexpr ForwardIt lower_bound(
  ForwardIt first,
  ForwardIt last,
  const T & value
)
```

### popcount

```c++
constexpr int popcount(
  T x
) noexcept
```

### rotl

```c++
constexpr std::enable_if_t< std::is_unsigned< T >::value, T > rotl(
  T x,
  int s
) noexcept
```

### rotr

```c++
constexpr std::enable_if_t< std::is_unsigned< T >::value, T > rotr(
  T x,
  int s
) noexcept
```

### sort

```c++
constexpr void sort(
  RandomIterator first,
  RandomIterator end,
  Comparator comp
)
```

### starts_with

```c++
constexpr bool starts_with(
  std::basic_string_view< CharT, Traits > s,
  decltype(s) prefix
)
```

### starts_with

```c++
constexpr bool starts_with(
  std::basic_string_view< CharT, Traits > s,
  const CharT *prefix
)
```

### starts_with

```c++
constexpr bool starts_with(
  std::basic_string_view< CharT, Traits > s,
  CharT c
)
```

### to_address

```c++
constexpr T * to_address(
  T *pointer
) noexcept
```

### to_address

```c++
constexpr std::pointer_traits< T >::element_type * to_address(
  const T & pointer
) noexcept
```

### to_array

```c++
constexpr std::array< std::remove_cv_t< T >, N > to_array(
  T(&) a[N]
)
```

### to_array

```c++
constexpr std::array< std::remove_cv_t< T >, N > to_array(
  T(&&) a[N]
)
```