Std :: cout函数作为参数

时间:2013-07-10 13:51:42

标签: c++ cout

我最近注意到你可以做像

这样的事情
void foo(){ }
//...
std::cout<<foo<<std::endl;

无论传递的函数如何,都会打印出“1”。

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

1 个答案:

答案 0 :(得分:5)

foo 衰减到函数指针,然后将其转换为值为true的布尔值(因为函数指针不为空),打印为“1”,因为布尔值默认打印为数字。

试试这个:

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