This documentation is archived and is not being maintained.

# 7.2.5 Candidate user-defined operators

**Visual Studio .NET 2003**

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 (Section 7.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`

.

Show: