Espacios de nombres
Variantes
Acciones

Diferencia entre revisiones de «cpp/utility/functional/binary function»

De cppreference.com
< cpp‎ | utility‎ | functional
m (Texto reemplaza - '<code cpp>' a '<syntaxhighlight lang="cpp">')
m (Texto reemplaza - 'C++0x' a 'C++11')
Línea 20: Línea 20:
 
Un functoide que herede de ''binary_function'' puede ser utilizado en cualquier algoritmo o construcción que espere un ''binary_function'' (por ejemplo, [[cpp/functional/:es:stl:algorithm:equal | :es:stl:algorithm:equal]]). Pero un functoide que no herede de ''binary_function'' no puede ser utilizado en todos los algoritmos ya que algunos de éstos pueden requerir que estén definidos los aliases ''first_argument_type'', etc.
 
Un functoide que herede de ''binary_function'' puede ser utilizado en cualquier algoritmo o construcción que espere un ''binary_function'' (por ejemplo, [[cpp/functional/:es:stl:algorithm:equal | :es:stl:algorithm:equal]]). Pero un functoide que no herede de ''binary_function'' no puede ser utilizado en todos los algoritmos ya que algunos de éstos pueden requerir que estén definidos los aliases ''first_argument_type'', etc.
  
C++0x resolverá esta ambigüedad al reemplazar esta construcción por la construcción para functoides genéricos ''function<>''.
+
C++resolverá esta ambigüedad al reemplazar esta construcción por la construcción para functoides genéricos ''function<>''.
  
 
=== Tópicos Relacionados ===
 
=== Tópicos Relacionados ===
  
 
* ''[[cpp/functional/unary_function | unary_function]]''
 
* ''[[cpp/functional/unary_function | unary_function]]''

Revisión de 04:01 3 may 2012


Sintaxis:

  template <class Arg1, class Arg2, class Result> 
    struct binary_function;

binary_function es la plantilla sobre la cual están basados los functoides binarios (de dos parámetros) en C++ STL. De por sí esta plantilla no provee el comportamiento del functoide (operator()) sino que simplemente provee algunos aliases para el uso de clases derivadas que explícitamente implementan el comportamiento del functoide:

    typedef Arg1 first_argument_type;
    typedef Arg2 second_argument_type;
    typedef Result result_type;


Limitaciones

Un functoide que herede de binary_function puede ser utilizado en cualquier algoritmo o construcción que espere un binary_function (por ejemplo, :es:stl:algorithm:equal). Pero un functoide que no herede de binary_function no puede ser utilizado en todos los algoritmos ya que algunos de éstos pueden requerir que estén definidos los aliases first_argument_type, etc.

C++11 resolverá esta ambigüedad al reemplazar esta construcción por la construcción para functoides genéricos function<>.

Tópicos Relacionados