重载了() 的匿名对象,调用()时,是不是函数指针?
被注释掉的语句为什么通不过?由下一语句 for_each 最后一个参数是函数指针,既然是指针就应该有值,能输出。
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
template <typename T>
class print
{
public:
void operator()(const T& elem)
{
cout < <elem < < ' ';
}
};
void show(int a)
{
cout < <a < <endl;
}
int main()
{
int ia[6]={0,1,2,3,4,5};
vector <int> iv(ia,ia+6);
for_each(iv.begin(), iv.end(), print <bool> ());
//cout < <reinterpret_cast <unsigned long> (print <bool> ());
for_each(iv.begin(), iv.end(), show);
}
[解决办法]
for_each 最后一个参数是函数指针
==========
不是
[解决办法]
print <bool> ( )是个匿名对象,不是一个函数。_Func(*_ChkFirst);调用的是operator( ).
[解决办法]
_Func
是一个能提供 func(c)
的任何东西
包含函数和对象
[解决办法]
是