[C++-sig] Boost.Python Function overload resolution order
dave at boost-consulting.com
Wed Nov 27 03:41:16 CET 2002
"Ralf W. Grosse-Kunstleve" <rwgk at yahoo.com> writes:
> --- David Abrahams <dave at boost-consulting.com> wrote:
>> I just discovered something surprising in Boost.Python's function
>> overload resolution: overloads are tried in the _reverse_ order in
>> which they are def'ed. I actually thought it worked the opposite way!
> Great, finally I know why I was confused by some of your earlier
Are you sure that isn't just becausen I vocatulate too ferixtably?
>> If we change the rules so that the first def() is tried first, g
>> will neve be called. However, I consider the current rule to be
>> counter-intuitive and surprising. Quite a dilemma.
> I have a module A def'ing some overloads for foo(). Then I have
> another module B which implicitly imports A and def's some more
> overloads in the scope() of A. In my particular case the overload
> resolution is unambiguous, so I don't really care. However, in
> general it could be advantageous if overloads def'ed by higher level
> modules get attention before any overloads def'ed by lower-level
> modules. For this scenario the current implementation seems ideal.
Why do you suppose that higher-level modules will be loaded second in
dave at boost-consulting.com * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution
More information about the Cplusplus-sig