1

我正在尝试用对 fmt 的调用替换自定义类型安全格式函数。当前实现支持 'u' 说明符,它将值打印为无符号,而不管其符号如何。我想在对 fmt::vformat 的调用中添加相同的功能。

我试着用 'd' 代替 'u' 的实例,但这不会正确打印负值。

我需要知道如何注入一个自定义整数说明符,该说明符调用当前实现,并将值转换为无符号整数。

4

1 回答 1

1

您不能将新格式说明符添加到内置格式化程序,因此我建议仅转换为unsigned

int answer = -42;
fmt::print("{}", unsigned(answer)); // prints 4294967254

https://godbolt.org/z/5bdtgA

于 2019-10-29T13:04:01.243 回答