
11 Feb
2005
11 Feb
'05
3:15 p.m.
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. :-)