Files
cppdraft_translate/cppdraft/customization/point/object.md
2025-10-25 03:02:53 +03:00

3.2 KiB
Raw Blame History

[customization.point.object]

16 Library introduction [library]

16.3 Method of description [description]

16.3.3 Other conventions [conventions]

16.3.3.3 Type descriptions [type.descriptions]

16.3.3.3.5 Customization Point Object types [customization.point.object]

1

#

A customization point object is a function object ([function.objects]) with a literal class type that interacts with program-defined types while enforcing semantic requirements on that interaction.

2

#

The type of a customization point object, ignoring cv-qualifiers, shall modelsemiregular ([concepts.object]).

3

#

All instances of a specific customization point object type shall be equal ([concepts.equality]).

The effects of invoking different instances of a specific customization point object type on the same arguments are equivalent.

4

#

The type T of a customization point object, ignoring cv-qualifiers, shall modelinvocable<T&, Args...>,invocable<const T&, Args...>,invocable<T, Args...>, andinvocable<const T, Args...> ([concept.invocable]) when the types in Args... meet the requirements specified in that customization point object's definition.

When the types of Args... do not meet the customization point object's requirements, T shall not have a function call operator that participates in overload resolution.

5

#

For a given customization point object o, let p be a variable initialized as if by auto p = o;.

Then for any sequence of arguments args..., the following expressions have effects equivalent to o(args...):

p(args...)

as_const(p)(args...)

std::move(p)(args...)

std::move(as_const(p))(args...)