【发布时间】:2019-10-23 15:55:38
【问题描述】:
我正在尝试用对 fmt 的调用替换自定义类型安全格式函数。当前实现支持 'u' 说明符,它将值打印为无符号,而不管其符号如何。我想在对 fmt::vformat 的调用中添加相同的功能。
我尝试将 'd' 替换为 'u' 的实例,但这不会正确打印负值。
我需要知道如何注入一个自定义整数说明符,该说明符调用当前实现,并将值转换为无符号整数。
【问题讨论】:
标签: fmt
我正在尝试用对 fmt 的调用替换自定义类型安全格式函数。当前实现支持 'u' 说明符,它将值打印为无符号,而不管其符号如何。我想在对 fmt::vformat 的调用中添加相同的功能。
我尝试将 'd' 替换为 'u' 的实例,但这不会正确打印负值。
我需要知道如何注入一个自定义整数说明符,该说明符调用当前实现,并将值转换为无符号整数。
【问题讨论】:
标签: fmt
您无法将新的格式说明符添加到内置格式化程序中,因此我建议只转换为 unsigned:
int answer = -42;
fmt::print("{}", unsigned(answer)); // prints 4294967254
【讨论】: