控制台打印时间功能产生1



我和几个开发人员想知道为什么:

std::cout<<std::time<<std::endl;

打印出值 1。该值表示什么,以及为什么该值为 1。

对发生的事情的回答: 如何使用cout打印函数指针?

C++标准规定:

4.12 布尔转换

1 算术、枚举、指针或指向成员的指针的右值 类型可以转换为布尔类型的右值。

引用匿名者的话:

这是为函数指针指定的唯一转换。

编辑:下面的答案很好地提出了为什么打印 1 而不仅仅是任何布尔值的解决方案,并解释了何时不会出现 1。

cpp首选项说:

指向

非静态成员的指针没有重载,指针指向 易失性指针或函数指针(带有签名的指针除外( 被 (10-12( 重载接受(。尝试输出此类对象 调用隐式转换为布尔值,并且对于任何非空指针 值,则打印值 1(除非设置了布尔阿尔法,在这种情况下 真被打印(。

因此,您会将函数指针std::time转换为bool并且始终true没有boolalpha将输出设置为1

相关内容

  • 没有找到相关文章

最新更新