Función de enlace C
bind es un conjunto de plantillas para el enlace de funciones. Al vincular una función, puede especificar algunos o todos los parámetros, o no puede especificar ningún parámetro, y también puede ajustar el orden de cada parámetro. Para parámetros no especificados, se pueden utilizar los marcadores de posición _1, _2 y _3. -1 representa el primer parámetro de la función vinculada, _2 representa el segundo parámetro de la función vinculada, y así sucesivamente.
el enlace se puede vincular a funciones ordinarias, objetos de función, funciones miembro de clase y variables miembro de clase. Primero introduzcamos el tipo más simple de comprensión de prueba.
Funciones ordinarias
1 void nine_arguments(int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9 ); p>
p>
int i1=1, i2=2, i3=3, i4=4, i5=5, i6=6, i7=7, i8=8, i9=9;
2bind (nueve_argumentos,_9,_2,_1,_6,_3,_8,_4,_5,_7 (i1,i2,i3,i4,i5,i6,i7,i8,i9);
3bind(nueve_argumentos, i9, i2, i1, i6, i3, i8, _1, _2, _1) (i8, i9)
4bind(nueve_argumentos, i9, i2, i1, i6, i3); , i8, i4, i5, i7) ();
Entre los cinco ejemplos anteriores:
1 es una forma de función ordinaria
2 significa que para el función 1, reemplazamos Para el orden de los parámetros, puede ver nueve_argumentos, _9, _2, _1, _6, _3, _8, _4, _5, _7. El primer marcador de posición especificado seguido es 9, lo que significa que para los siguientes corchetes. El primer parámetro i1, asigna su valor a la función original
void nine_arguments(int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9)
Los siguientes corresponden en secuencia, lo que en última instancia equivale a llamar a la función nine_arguments(i3, i2, i5, i7, i8, i4, i9, i6, i1)
Basado en entender 2, 3 es equivalente a nueve_argumentos (i3, i2, i5, i7, i8, i4, i8, i9, i8)
Debería ser así.