Строковое выражение, которое подставляет в заданные места в строке-образце, задаваемой в рантайме, значения переданных строковых выражений. Подробнее...
#include <strexpr.h>
Открытые члены | |
| constexpr | e_vsubst (str_src< K > pattern, Args &&...args) |
| Создает строковое выражение, которое подставляет в заданные места в строке-образце, задаваемой в рантайме, значения переданных строковых выражений. | |
Строковое выражение, которое подставляет в заданные места в строке-образце, задаваемой в рантайме, значения переданных строковых выражений.
|
inlineconstexpr |
Создает строковое выражение, которое подставляет в заданные места в строке-образце, задаваемой в рантайме, значения переданных строковых выражений.
| pattern | - Строковый объект-образец, в который будут подставляться значения переданных аргументов. |
| args... | - аргументы, которые будут подставляться в заданные места образца. Также, как и в e_concat, могут быть строковые литералы, строковые выражения, стандартные строки, а также любые типы, для которых есть преобразование в строковое выражение. |
Функция создаёт строковое выражение, которое при материализации генерирует текст из образца, подставляя в места подстановки значения переданных аргументов. Строка-образец задается в рантайм, строковым объектом, парсинг которого происходит во время выполнения. Места вставки обозначаются либо как {}, либо как {номер}. В случае без указания номера, параметры подставляются в переданном в функцию порядке. В случае указания номера, параметры подставляются в соответствии с указанным порядковым номером. Нумерация параметров начинается с 1. Смешивать параметры без номера и с номером нельзя - используется только один из вариантов для всех подстановок. В случае указания номеров - один параметр может участвовать в нескольких подстановках. Все переданные параметры должны участвовать в подстановках. В случае ошибки парсинга строки будет выкинуто исключение parse_subst_string_error. Для вставки самих фигурных скобок они должны удваиваться - {{, }}. Функция не является заменой std::vformat, не работает с образцом, задаваемым в compile-time, и не поддерживает каких-либо параметров форматирования подставляемых значений. Все передаваемые аргументы должны сами уметь преобразовывать себя в строковые выражения (см. Конвертация типов в в строковые выражения). Пример: