Spec-Zone.ru › C++

Именованные требования C++: объект точки настройки (начиная с C++20)

Объекты точек настройки — это не имеющие состояния объекты-функции литерального semiregular типа класса.

Все объекты точек настройки одного и того же типа класса равны. Результаты вызова разных экземпляров этого типа с одними и теми же аргументами эквивалентны независимо от того, является ли выражение, обозначающее экземпляр, lvalue или rvalue, а также имеет ли оно квалификатор const. Однако от экземпляра с квалификатором volatile не требуется поддержка вызова. Таким образом, объекты точек настройки можно свободно копировать, а копии можно использовать взаимозаменяемо.

Пусть Fn — тип объекта точки настройки, а Args... — набор типов. Если std::declval<Args>()... удовлетворяют требованиям к аргументам для Fn, то Fn моделирует

  • std::invocable<Fn, Args...>,
  • std::invocable<const Fn, Args...>,
  • std::invocable<Fn&, Args...> и
  • std::invocable<const Fn&, Args...>.

В противном случае ни один оператор вызова функции Fn не участвует в разрешении перегрузки.

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/named_req/CustomizationPointObject

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API