为什么std :: stream操纵器基础结构中类型不一致?

时间:2019-05-07 00:07:42

标签: c++ types iostream c++-standard-library

今天要做一些流输出,并且需要强制格式化字段。回顾大多数操纵器是持久性的,我决定向恶作剧投保:

auto oldp = std::cout.precision(); // Cache this to be able to undo a set
std::out << "threshold" 
         << std::setprecision(2) << m_threshold   // set 
         << std::setprecision(oldp) << std::endl; // restore 

然后我的linter在“恢复”行上发出有关隐式整数向下转换的警告。

稍微四处摸索并确定'nuf',std::setprecision会占用int,而std::ios_base::precision会返回streamsize(这是系统中的long我的面前)。

因此,皮特犬正在提出有效的申诉(而且很容易就可以解决),但是为什么存在这种情况?

0 个答案:

没有答案