Given a type T and an operation operator op(A), where op is an overloadable operator and A is an argument list, the set of candidate user-defined operators provided by T for operator op(A) is determined as follows: For all operator op declarations in T, if at least one operator is applicable (14.4.2.1) with respect to the argument list A, then the set of candidate operators consists of all applicable operator op declarations in T. Otherwise, if T is object, the set of candidate operators is empty. Otherwise, the set of candidate operators provided by T is the set of candidate operators provided by the direct base class of T.