Diferencia entre revisiones de «cpp/utility/functional/binary function»
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++ | + | 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<>.