Лучший способ сохранить va_list для последующего использования в C / C ++
Я использую va_list для создания строки, которая отображается.
void Text2D::SetText(const char *szText, ...)
Это все хорошо, но теперь у пользователя есть возможность менять язык во время работы приложения. Мне нужно восстановить все текстовые строки и повторно кэшировать текстовые растровые изображения после инициализации. Я хотел бы сохранить va_list и использовать его всякий раз, когда необходимо сгенерировать текст.
Чтобы дать вам дополнительную информацию, это должно произойти в случае, когда в ключевой строке, которую я перевожу, содержится динамический фрагмент данных.
"Player Score:%d"
Это ключевая строка, которую мне нужно перевести. Я хотел бы сохранить число (числа), предоставленное в va_list для последующего использования (вне области функции, которая инициализирует текст), в случае, если его нужно будет повторно преобразовать после инициализации. Предпочтительно я хотел бы иметь копию va_list для использования с vsnprintf.
Я провел некоторые исследования, чтобы сделать это, и нашел несколько способов. Некоторые из которых я подвергаю сомнению, является ли это подходящим методом (с точки зрения стабильности и переносимости).