我想知道为什么以下给我一个错误:
bool is_divisible(int by, int n)
{
return (n % by) == 0;
}
int main()
{
vector<int> v {1, 2, 3, 4, 5};
cout << count_if(v.begin(), v.end(), bind1st(is_divisible, 2)) << endl;
}
但是,如果我使用bind(is_divisible, 2, _1)
,它可以工作。我想知道两者之间的技术差异是什么bind1st
,bind
导致后者在这种情况下工作?