---
title: "ClikaRT::nn::ModuleDict"
sidebar_label: "ModuleDict"
description: "A named set of modules registered under their keys, in insertion order, so a checkpoint names their weights heads.cls.weight."
---

<!-- Generated by tools/doxygen2mdx from Doxygen XML. Do not edit. -->

<span class="api-kind api-kind--class">class</span>

**Header:** `ClikaRT/nn/containers.h`  
**Inherits:** [`ClikaRT::nn::Module`](./Module.md)

A named set of modules registered under their keys, in insertion order, so a checkpoint names their weights `heads.cls.weight`. A dict has no `forward` of its own: the owner looks a module up and calls it.

## Types

### using Entry {#Entry}

<div class="api-signature">

`using` **`Entry`** `=` `std::pair<std::string, std::shared_ptr<`[`Module`](./Module.md)`>>`

</div>

<div class="api-declared">

Declared in `ClikaRT/nn/containers.h`, line 161

</div>

## Member functions

### ModuleDict() {#ModuleDict}

<div class="api-signature">

**`ModuleDict`**() `=default`

</div>

<div class="api-declared">

Declared in `ClikaRT/nn/containers.h`, line 163

</div>

### insert() {#insert}

<div class="api-signature">

[`ModuleDict`](./ModuleDict.md)`&` **`insert`**(`std::string` `name`, `std::shared_ptr<`[`Module`](./Module.md)`>` `module`)

</div>

Adds `module` under `name`, or replaces the module already there (keeping its position). `name` is one path element: non-empty and without a `.`.

<div class="api-declared">

Declared in `ClikaRT/nn/containers.h`, line 168

</div>

### contains() {#contains}

<div class="api-signature">

`bool` **`contains`**(`std::string_view` `name`) `const`

</div>

True when a module is registered under `name`.

<div class="api-declared">

Declared in `ClikaRT/nn/containers.h`, line 181

</div>

### get() {#get}

<div class="api-signature">

`std::shared_ptr<`[`Module`](./Module.md)`>` **`get`**(`std::string_view` `name`) `const`

</div>

The module under `name`, or an empty pointer when there is none.

<div class="api-declared">

Declared in `ClikaRT/nn/containers.h`, line 183

</div>

### size() {#size}

<div class="api-signature">

`std::size_t` **`size`**() `const`

</div>

The number of modules.

<div class="api-declared">

Declared in `ClikaRT/nn/containers.h`, line 188

</div>

### empty() {#empty}

<div class="api-signature">

`bool` **`empty`**() `const`

</div>

True when the dict holds no module.

<div class="api-declared">

Declared in `ClikaRT/nn/containers.h`, line 190

</div>

### entries() {#entries}

<div class="api-signature">

`const std::vector<`[`Entry`](./ModuleDict.md#Entry)`>&` **`entries`**() `const`

</div>

The `(name, module)` entries in insertion order.

<div class="api-declared">

Declared in `ClikaRT/nn/containers.h`, line 192

</div>
