Boost logo

Boost Users :

From: Frank Mori Hess (frank.hess_at_[hidden])
Date: 2008-08-19 10:30:51


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Tuesday 19 August 2008 09:56 am, Guo Xu wrote:
> vector<string>::iterator it = std::find_if( strs.begin(), strs.end(),
> boost::bind2nd( boost::contains<string, string> , "mp" ) );
>
> return 0;
> }
>
> why this part of programe can be compiled on the mscv8, but can not be
> compled on the g++?
>
> the error prompt is:
> stringalgo.cpp: In function 'int main()':
> stringalgo.cpp:29: error: no matching function for call to
> 'bind2nd(<unresolved overloaded function type>, std::string&)'

Its having trouble deciding between the 2 and 3 template argument overloads of
boost::contains. You can resolve it by explicitly decaring a function
pointer:

bool (*contains_p)(const std::string &, const std::string &) =
&boost::contains<string, string>;

boost::bind2nd( contains_p , "mp" ) );
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFIqtkf5vihyNWuA4URAtu8AKCnZoeQtudcSz2tPELSQrJfFQ57swCgu6Nb
k+D/wjHf+fejIrK1pOEZDjg=
=W4uU
-----END PGP SIGNATURE-----


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net