# ConstBuffer

<a id="constbuffer-6"></a>

# ConstBuffer

```cpp
#include <buffer.h>

class ConstBuffer
```

Defined in src/base/include/icy/buffer.h:142

The [ConstBuffer](#constbuffer-6) class provides a safe representation of a buffer that cannot be modified. It does not own the underlying data, and so is cheap to copy or assign.

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
| `constexpr` | [`ConstBuffer`](#constbuffer-7) `inline` `constexpr` | Construct an empty buffer. |
| `constexpr` | [`ConstBuffer`](#constbuffer-8) `inline` `constexpr` | Construct a buffer to represent the given memory range. |
| `constexpr` | [`ConstBuffer`](#constbuffer-9) `inline` `constexpr` | Construct a non-modifiable buffer from a modifiable one. |
| `const void *` | [`data`](#data-1) `const` `inline` `nodiscard` `constexpr` |  |
| `size_t` | [`size`](#size-1) `const` `inline` `nodiscard` `constexpr` |  |
| `const char *` | [`cstr`](#cstr-1) `const` `inline` `nodiscard` | Cast the buffer as a const char pointer. |
| `std::string` | [`str`](#str-1) `const` `inline` | Returns the buffer as a string. |

---

<a id="constbuffer-7"></a>

### ConstBuffer

`inline` `constexpr`

```cpp
constexpr inline constexpr ConstBuffer()
```

Defined in src/base/include/icy/buffer.h:146

Construct an empty buffer.

---

<a id="constbuffer-8"></a>

### ConstBuffer

`inline` `constexpr`

```cpp
constexpr inline constexpr ConstBuffer(const void * data, size_t size)
```

Defined in src/base/include/icy/buffer.h:153

Construct a buffer to represent the given memory range.

---

<a id="constbuffer-9"></a>

### ConstBuffer

`inline` `constexpr`

```cpp
constexpr inline constexpr ConstBuffer(const MutableBuffer & b)
```

Defined in src/base/include/icy/buffer.h:160

Construct a non-modifiable buffer from a modifiable one.

---

<a id="data-1"></a>

### data

`const` `inline` `nodiscard` `constexpr`

```cpp
[[nodiscard]] constexpr inline const void * data() const
```

Defined in src/base/include/icy/buffer.h:166

---

<a id="size-1"></a>

### size

`const` `inline` `nodiscard` `constexpr`

```cpp
[[nodiscard]] constexpr inline size_t size() const
```

Defined in src/base/include/icy/buffer.h:167

---

<a id="cstr-1"></a>

### cstr

`const` `inline` `nodiscard`

```cpp
[[nodiscard]] inline const char * cstr() const
```

Defined in src/base/include/icy/buffer.h:170

Cast the buffer as a const char pointer.

---

<a id="str-1"></a>

### str

`const` `inline`

```cpp
inline std::string str() const
```

Defined in src/base/include/icy/buffer.h:173

Returns the buffer as a string.

## Protected Attributes

| Return | Name | Description |
|--------|------|-------------|
| `const void *` | [`_data`](#_data-1)  |  |
| `size_t` | [`_size`](#_size-1)  |  |

---

<a id="_data-1"></a>

### _data

```cpp
const void * _data
```

Defined in src/base/include/icy/buffer.h:176

---

<a id="_size-1"></a>

### _size

```cpp
size_t _size
```

Defined in src/base/include/icy/buffer.h:177
