boost::openmethod::n2216

N2216 ambiguity resolution.

Synopsis

struct n2216;

Description

If n2216 is present in initialize's Options, additional steps are taken to select a single overrider in presence of ambiguous overriders sets, according to the rules defined in the N2216 paper. If the normal resolution procedure fails to select a single overrider, the following steps are applied, in order:

‐ If the return types of the remaining overriders are all polymorphic and covariant, and one of the return types is more specialized thjat all the others, use it.

‐ Otherwise, pick one of the overriders. Which one is used is unspecified, but remains the same throughtout the program, and across different runs of the same program.

Created with MrDocs