Std::cout函数作为参数

Std::cout function as parameter

本文关键字:参数 函数 cout Std      更新时间:2023-10-16

我最近注意到你可以做之类的事情

void foo(){ }
//...
std::cout<<foo<<std::endl;

这往往会打印出"1",而与传递的函数无关。

现在我很好奇:这到底是在干什么?

foo正在衰减到函数指针,然后将其转换为值为true的布尔值(因为函数指针不是null),该值打印为"1",因为布尔值默认打印为数字。

试试这个:

std::cout << std::boolalpha << foo << std::endl;