
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Monday 13 April 2009, Peter Dimov wrote:
I haven't. What seems to be happening is that when you pass _1, which is
inline arg<1> _1() { .. }
Also, if I modify bind/placeholders.hpp to define _1 as the usual boost::arg<1> _1; the problems seem to go away. Maybe the defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ <= 400) should be modified to additionally check that __GNUC_PATCHLEVEL__ is less than 1? I ran the bind tests and they still all pass with g++ 4.0.1 with this change.
to A1 const& a1, A1 is properly deduced as a function type, but the const is not dropped, as it should be; instead, the type of a1 becomes arg<1> (&)() const (which is illegal BTW). When this a1 is passed (by value) to boost::bind, it decays to its corresponding pointer type, arg<1> (*)() const - which is also illegal. :-)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAknjkcIACgkQ5vihyNWuA4WdIACg3MNMqwlrBRI9cJRvM6M0m3zs HkwAoMKf+0HQL+g7nc05AdygbRmrOXCs =IgII -----END PGP SIGNATURE-----