Preguntas con respuestas sobre "enable-if"

34 preguntas, página #1

1

votos

1

respuestas

vistas 369

Especialización de método de clase de plantilla "Fingiendo" con enable_if

Me pregunto si el principio/enable_if de SFINAE se puede usar para "falsificar" la especialización parcial del método de plantilla de clase. Por ejemplo, dada la plantilla de clase Foo en la que se definen dos versiones de Foo::bar. Me gustaría habilitar uno y deshabilitar el otro si T2 = int (por ejemplo) y viceversa. ...

preguntado 11 años, 5 meses

4

votos

1

respuestas

vistas 392

¿Hay alguna forma de usar SFINAE para determinar si una llamada a una función con plantilla fallaría debido a los tipos proporcionados?

Tengo una clase con plantilla que estoy usando para proporcionar un método que usará boost :: lexical_cast para convertir sus parámetros std :: string al tipo especificado en la plantilla, solo si la conversión léxica es posible. Actualmente, para verificar si es posible, simplemente estoy verificando si el operador >> está definido ...

preguntado 11 años, 8 meses

5

votos

1

respuestas

vistas 2,493

Especializar la función miembro de C ++ basada en el argumento de la plantilla de clase

Tengo una clase con un parámetro de plantilla que debería decidir cuál de los dos estilos de datos contiene. Según ese parámetro, quiero implementar una función miembro de dos formas diferentes. Intenté usar Boost Enable-If, pero sin éxito. Aquí está la versión del código que más me sorprende ...

preguntado 12 años, 2 meses

6

votos

4

respuestas

vistas 2,055

escriba la firma de un constructor de plantilla con plantilla enable_if'ed?

Por lo general, declaro mis clases y plantillas, y luego defino sus métodos (en el mismo archivo de encabezado, por supuesto). Me resulta más fácil leer de esa manera. Bueno, me encontré con un caso en el que no puedo encontrar una firma de tipo funcional para usar en una definición fuera de clase. Aquí hay un simplificado ...

preguntado 12 años, 7 meses

3

votos

1

respuestas

vistas 491

La inferencia de tipo C ++ 0x se mete con boost :: enable_if

Estoy tratando de escribir una función de filtrado genérica que realice una interpolación lineal en una coordenada de muestreo dada en una matriz multidimensional (rango arbitrario). Para esto, necesito una plantilla de función recursiva que recorra todas las dimensiones de una matriz hasta que llegue a un valor y su asociado ...

preguntado 12 años, 8 meses

25

votos

6

respuestas

vistas 1,104

Conversión implícita débilmente acoplada

La conversión implícita puede ser realmente útil cuando los tipos son semánticamente equivalentes. Por ejemplo, imagine dos bibliotecas que implementan un tipo de manera idéntica, pero en diferentes espacios de nombres. O simplemente un tipo que es casi idéntico, excepto por algo de azúcar semántica aquí y allá. Ahora no puedes pasar un tipo ...

preguntado 12 años, 8 meses