微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

“cout << boolalpha”在幕后做了什么?

如何解决“cout << boolalpha”在幕后做了什么?

语句 cout << boolalphacout << noboolalpha 改变了 cout 的行为。但他们如何在幕后工作?

查看c++的源代码,发现文件ios_base中有如下内容

  inline ios_base& boolalpha(ios_base& __base) {
    __base.setf(ios_base::boolalpha);
    return __base;
  }

  inline ios_base& noboolalpha(ios_base& __base) {
    __base.unsetf(ios_base::boolalpha);
    return __base;
  }

这些是 ios_base 的方法,用于更改负责 bool 格式的格式标志。

我不明白的是:语句cout << noboolalpha;如何调用方法noboolalpha

我希望有一个名为 noboolapha全局变量,当它流入 cout 时,会触发 noboolalpha 方法调用。但我没有找到任何这样的变量。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。