Poco记录64位数字

时间:2016-03-10 22:47:46

标签: c++ poco-libraries

我必须失明,因为我看不到这一个......

我的代码块周围有一个Poco::Stopwatch,我知道我可以使用Clock::ClockDiff elapsed() const; ClockDiff Int64来获得结果。

我想使用poco_information_f1("x() took %?? us", diff);记录结果,但我找不到??的神奇值。 Google建议%lld%Ld是正确的说明符,但两者都显示为[ERRFMT]

任何提示?

1 个答案:

答案 0 :(得分:2)

poco_information_f1是一个宏,它解析为将参数传递给Poco::format,其文档为here

因此,右侧修饰符为%?d,它将采用从short到64位int的任何整数类型。您几乎想到了%??:D

这是有效的,因为Poco::format不是C风格的可变参数函数;相反,它需要额外的类型Poco::Any的参数,因此函数确切地知道参数是什么数据类型。