我们有一个StreamBuffer课程,我们没有实施std::fixed操作,我试图阻止数字出现在科学记数法中.用我的下面的代码,一些数字以科学记数显示.我们希望避免进行任何分配,这就是我们StreamBuffer因为性能原因而实现类的原因.
以下是代码:
T value = 0;
template<typename U> void process(U& buf, DataOption holder) const {
if (holder == DataOption::TYPES) {
switch (type_) {
case teck::PROC_FLOAT:
buf << "{\"float\":" << value << "}";
break;
case teck::PROC_DOUBLE:
buf << "{\"double\":" << value << "}";
break;
default:
buf << "{\"" << type_ << "\":" << value << "}";
}
}
}
Run Code Online (Sandbox Code Playgroud)
这就是它被调用的方式:
void HolderProcess::dump(std::ostream& os, DataOption holder) const
{
process<std::ostream>(os, holder);
}
void HolderProcess::dump(StreamBuffer& buffer, DataOption holder) …Run Code Online (Sandbox Code Playgroud)