close
Espacios de nombres
Variantes

Objeto punto de personalización (desde C++20)

De cppreference.com

Explicación

El nombre cpo denota un objeto punto de personalización, que es un objeto función const de un tipo clase literal semiregular. Para fines de exposición, la versión no calificada const volatile de su tipo se denota como __cpo_fn.

Todas los ejemplares de __cpo_fn son iguales. Los efectos de invocar diferentes ejemplares del tipo __cpo_fn sobre los mismos argumentos son equivalentes, independientemente de si la expresión que denota el ejemplar es un l-valor o un r-valor, y está calificada const o no (sin embargo, no se requiere que un ejemplar calificado volatile sea invocable). Por lo tanto, cpo se puede copiar libremente y sus copias se pueden usar indistintamente.

Dado un conjunto de tipos Args..., si std::declval<Args>()... cumple con los requisitos para los argumentos a cpo arriba, __cpo_fn modela

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

De lo contrario, ningún operador de llamada a función de __cpo_fn participa en la resolución de sobrecargas.

Véase también