Можно ли объединить несколько полей вместе?
Например.,
std::format("{:{}:<12} text", file, line)
выровнять как
main.cpp:1 text
и не как
main.cpp: 1 text
Пример не соответствует заголовку и описанию вопроса. Принятый ответ выравнивает и дополняет только одно поле (из многих), и никакая группа полей не рассматривается как «вместе».
@WeijunZhou Я думаю, что OP имел в виду несколько аргументов вместо «несколько полей». Вопрос. поэтому заголовок должен быть изменен в соответствии с описанием.
В таком случае пример соответствует, но вопрос недостаточно ясен. Ваше согласие с уже удаленным ответом еще больше усугубило путаницу.
Можно ли объединить несколько полей вместе?
Нет. Но вы можете сначала объединить поля, а потом выровнять результат.
std::format("{:<12} text\n", std::format("{}:{}", file, line));
Это производит
main.cpp:1 text
Да, это возможно, сначала отформатируйте файл + строку в строку, а затем отформатируйте окончательный вывод, используя ранее отформатированную строку. Возможно, это не тот ответ, который вы ищете, но он соответствует вашему вопросу (который не очень конкретен)