[alg.func.obj]

# 16 Library introduction [[library]](./#library)

## 16.3 Method of description [[description]](description#alg.func.obj)

### 16.3.3 Other conventions [[conventions]](conventions#alg.func.obj)

#### 16.3.3.4 Algorithm function objects [alg.func.obj]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L895)

An [*algorithm function object*](#def:algorithm_function_object "16.3.3.4 Algorithm function objects [alg.func.obj]") is
a customization point object ([[customization.point.object]](customization.point.object "16.3.3.3.5 Customization Point Object types"))
that is specified as one or more overloaded function templates[.](#1.sentence-1)

The name of these function templates designates
the corresponding algorithm function object[.](#1.sentence-2)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L902)

For an algorithm function object o,
let S be the corresponding set of function templates[.](#2.sentence-1)

Then for any sequence of arguments args …,o(args …) is expression-equivalent tos(args …),
where the result of name lookup for s is the overload set S[.](#2.sentence-2)

[*Note [1](#note-1)*:

Algorithm function objects are not found by
argument-dependent name lookup ([[basic.lookup.argdep]](basic.lookup.argdep "6.5.4 Argument-dependent name lookup"))[.](#2.sentence-3)

When found by unqualified name lookup ([[basic.lookup.unqual]](basic.lookup.unqual "6.5.3 Unqualified name lookup"))
for the [*postfix-expression*](expr.post.general#nt:postfix-expression "7.6.1.1 General [expr.post.general]") in a function call ([[expr.call]](expr.call "7.6.1.3 Function call")),
they inhibit argument-dependent name lookup[.](#2.sentence-4)

[*Example [1](#example-1)*: void foo() {using namespace std::ranges;
 std::vector<int> vec{1,2,3};
 find(begin(vec), end(vec), 2); // #1}

The function call expression at #1 invokes std​::​ranges​::​find,
not std​::​find[.](#2.sentence-5)

â *end example*]

â *end note*]
