|
Boost : |
From: Peter Dimov (pdimov_at_[hidden])
Date: 2005-02-11 10:15:53
John Maddock wrote:
> I'm trying to figure out what the problem is with the following code,
> given:
> double test_proc(int a, char b, long c)
> {
> return a+b+c;
> }
>
> Then:
>
> boost::bind<double>(&test_proc, 0, 0, 0);
>
> The code compiles fine with VC7.1 but with gcc-3.3.3 I get:
[ambiguity]
> And with Intel 8.1 I get:
[ambiguity]
> Who's correct here? Normally I would trust EDG/Intel to get this
> correct if anyone would.
Does it matter? The correct call is bind( test_proc, 0, 0, 0 ).
It's an interesting core language question how partial ordering should work
in situations when a template parameter is explicitly supplied. I don't
expect any further changes to that part of the standard, however. :-)
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk