---
title: "ClikaRT::tokenizer::Template"
sidebar_label: "Template"
description: "A parsed, reusable template. Move-only. Every fallible operation returns Result<T>; the library never throws."
---

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

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

**Header:** `ClikaRT/template/template.h`

Text templating (Jinja2-compatible): parse a template once, render it many times against a `json::Json` context. Useful for prompt construction and any server-side text generation. For a model's chat template specifically, prefer `Tokenizer::apply_chat_template` (it applies the chat-format polyfills); `Template` is the general-purpose engine underneath.

A parsed, reusable template. Move-only.

Every fallible operation returns [`Result`](../Result.md)`<T>`; the library never throws. Turn a failure into an exception on your own side with `.value_or_throw()`, or inspect `.ok()` / `.status()` / `.message()`.

## Static member functions

### parse() {#parse}

<div class="api-signature">

`static` [`Template`](./Template.md) **`parse`**(`std::string_view` `source`)

</div>

Parse `source`. Malformed template syntax raises [`ClikaRT::Error`](../Error.md). `source` is read during the call, not retained.

<div class="api-declared">

Declared in `ClikaRT/template/template.h`, line 34

</div>

## Member functions

### Template() {#Template}

<div class="api-signature">

**`Template`**(`Template&&`) `noexcept`

</div>

<div class="api-declared">

Declared in `ClikaRT/template/template.h`, line 36

</div>

### operator=() {#operator-assign}

<div class="api-signature">

[`Template`](./Template.md)`&` **`operator=`**([`Template`](./Template.md)`&&`) `noexcept`

</div>

Move-assign: transfers the template.

<div class="api-declared">

Declared in `ClikaRT/template/template.h`, line 38

</div>

### \~Template() {#Template-2}

<div class="api-signature">

**`~Template`**()

</div>

Releases the template.

<div class="api-declared">

Declared in `ClikaRT/template/template.h`, line 40

</div>

### render() {#render}

<div class="api-signature">

`std::string` **`render`**(`const` [`json::Json`](../json/Json.md)`&` `context`) `const`

</div>

Render against `context` (the variables the template references). A render-time error (an undefined variable used in a strict position, a type error, a raised exception) raises [`ClikaRT::Error`](../Error.md).

<div class="api-declared">

Declared in `ClikaRT/template/template.h`, line 46

</div>
