I'm trying to sort a two-dimensional array `vector<vector<int> > a(M,vector<int>(N))` row-wise with respect to its n-th column like this: 

```
sort(a.begin(),a.end(),
  (bind(&vector<int>::operator[],_1,n) >
   bind(&vector<int>::operator[],_2,n)));

```

however my compiler tells me

```
error: no matching function for call to ‘bind(<unresolved overloaded function type>, const boost::lambda::placeholder1_type&, int)’
error: no matching function for call to ‘bind(<unresolved overloaded function type>, const boost::lambda::placeholder2_type&, int)’

```

how should I resolve the call?

PS.: tried an even simpler version of the preceding access to operator[] 

```
  vector<int> a(10);
  (bind(&vector<int>::operator[],_1,_2))(a,2);

```

which is an adapted copy-cut-and-paste directly from Karlsson's book. Getting

```
error: no matching function for call to ‘bind(<unresolved overloaded function type>, const boost::lambda::placeholder1_type&, const boost::lambda::placeholder2_type&)’

```

also for that...