Spec-Zone.ru › C++

Объект точки настройки

Объяснение

Имя ranges::cpo обозначает объект точки настройки, который является константным функциональным объектом литерала типа класса semiregular. Для наглядности, неквалифицированная версия его типа обозначается как __cpo_fn.

Все экземпляры __cpo_fn равны. Эффекты вызова разных экземпляров типа __cpo_fn с одинаковыми аргументами эквивалентны, независимо от того, является ли выражение, обозначающее экземпляр, lvalue или rvalue, и квалифицировано ли оно как const (однако, экземпляр с квалификатором volatile не обязательно должен быть вызываемым). Таким образом, ranges::cpo можно свободно копировать, и его копии можно использовать взаимозаменяемо.

Учитывая набор типов Args..., если std::declval<Args>()... удовлетворяют требованиям аргументов для ranges::cpo выше, __cpo_fn моделирует

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

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

См. также

  • Объект адаптера диапазона (ОАД)
  • Объект замыкания адаптера диапазона (ОЗАД)

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

Spec-Zone.ru

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