simstr 1.7.3
Yet another strings library
 
Загрузка...
Поиск...
Не найдено
Шаблон структуры simstr::e_subst< K, PtLen, Args >

Строковое выражение, которое подставляет в заданные места в строковом литерале - образце значения переданных строковых выражений. Подробнее...

#include <strexpr.h>

Граф наследования:simstr::e_subst< K, PtLen, Args >:
simstr::expr_to_std_string< e_subst< K, PtLen, Args... > >

Открытые члены

constexpr e_subst (const details::subst_params< K, PtLen, NParams > &subst, Args &&...args)
 Создает строковое выражение, которое подставляет в заданные места в строковом литерале - образце значения переданных строковых выражений.
 

Подробное описание

template<typename K, size_t PtLen, typename ... Args>
struct simstr::e_subst< K, PtLen, Args >

Строковое выражение, которое подставляет в заданные места в строковом литерале - образце значения переданных строковых выражений.

Конструктор(ы)

◆ e_subst()

template<typename K, size_t PtLen, typename ... Args>
simstr::e_subst< K, PtLen, Args >::e_subst ( const details::subst_params< K, PtLen, NParams > & subst,
Args &&... args )
inlineconstexpr

Создает строковое выражение, которое подставляет в заданные места в строковом литерале - образце значения переданных строковых выражений.

Аргументы
pattern- распарсенная во время компиляции информация составе строки-шаблона, содержит длины текстовых порций и места вставки параметров. Создается автоматически из переданного строкового литерала.
args...- аргументы, которые будут подставляться в заданные места образца. Также, как и в e_concat, могут быть строковые литералы, строковые выражения, стандартные строки, а также любые типы, для которых есть преобразование в строковое выражение.

Функция создаёт строковое выражение, которое при материализации генерирует текст из образца, подставляя в места подстановки значения переданных аргументов. Строка-образец задается строковым литералом, константной времени компиляции. Места вставки обозначаются либо как {}, либо как {номер}. В случае без указания номера, параметры подставляются в переданном в функцию порядке. В случае указания номера, параметры подставляются в соответствии с указанным порядковым номером. Нумерация параметров начинается с 1. Смешивать параметры без номера и с номером нельзя - используется только один из вариантов для всех подстановок. В случае указания номеров - один параметр может участвовать в нескольких подстановках. Все переданные параметры должны участвовать в подстановках. Для вставки самих фигурных скобок они должны удваиваться - {{, }}. Строка-образец обрабатывается во время компиляции, и для неё сразу создаётся массив с информацией о вставках - какие части строки копировать в результат, в какие места вставлять переданные значения. Функция не является заменой std::format, не работает с образцом, задаваемым в рантайм, и не поддерживает каких-либо параметров форматирования подставляемых значений. Все передаваемые аргументы должны сами уметь преобразовывать себя в строковые выражения (см. Конвертация типов в в строковые выражения). Пример:

lstringu<100> u16t = e_subst(u"Test {} from {}, {}.", from, total, success ? u"success"_ss : u"fail"_ss);
constexpr e_subst(const details::subst_params< K, PtLen, NParams > &subst, Args &&...args)
Создает строковое выражение, которое подставляет в заданные места в строковом литерале - образце знач...
Определения strexpr.h:6701

Объявления и описания членов структуры находятся в файле: