C++ C++;运行时字符串格式

C++ C++;运行时字符串格式,c++,stream,string-formatting,C++,Stream,String Formatting,通常我使用流来格式化东西,但是在这种情况下,我直到运行时才知道格式 我希望能够采用以下格式字符串: 你好{0}!您上次登录是在{1,日期:dd/mm/yy}。 …并输入变量“Fire Lancer”和1247859223,最后得到以下格式化字符串: 你好,火枪手!您上次登录是在2009年7月17日 在其他语言中,我使用内置的支持这类东西,例如Python格式字符串方法,但是在C++中,似乎没有任何这样的功能,接受不太安全的C打印方法。 此外,这也是针对高性能程序的,因此无论我使用什么解决方案,都

通常我使用流来格式化东西,但是在这种情况下,我直到运行时才知道格式

我希望能够采用以下格式字符串:
你好{0}!您上次登录是在{1,日期:dd/mm/yy}。
…并输入变量“Fire Lancer”和1247859223,最后得到以下格式化字符串:
你好,火枪手!您上次登录是在2009年7月17日

在其他语言中,我使用内置的支持这类东西,例如Python格式字符串方法,但是在C++中,似乎没有任何这样的功能,接受不太安全的C打印方法。
此外,这也是针对高性能程序的,因此无论我使用什么解决方案,都需要一次性解析格式字符串并将其存储(例如,可能通过使用格式(字符串)方法返回FormatString对象的解析方法),而不是每次调用format方法时都重新解析字符串…

将执行位置参数部分,但不是日期格式…

将执行位置参数部分,而不是日期格式…

Boost formatting将为您执行以下操作:


查看下面的用法示例:

Boost Formatting可为您做到这一点:


查看下面的用法示例:

您的格式字符串与ICU中使用的格式字符串非常相似。你是否考虑使用它?

你的格式字符串看起来很像ICU中使用的格式字符串。你是否考虑过使用它?

你的高性能程序很快地向用户打招呼?@ Gman HaaHaHaHA。我仍然在问自己这个问题:你的高性能程序能很快地向用户打招呼吗?@GMan哈哈哈。我也在问自己这个问题