Resultados de la búsqueda a petición "sfinae"

3 la respuesta

¿Es posible usar SFINAE / templates para verificar si existe un operador?

Estoy tratando de verificar si existe un operador en tiempo de compilación, si no es así, solo quiero que se ignore, ¿hay alguna forma de hacerlo? operador de ejemplo: template <typename T> QDataStream& operator<<(QDataStream& s, const ...

2 la respuesta

Múltiples especializaciones de plantilla de clase SFINAE usando void_t

¿Son válidas las especializaciones de plantillas de clase múltiple, cuando cada una es distinta solo entre patrones que involucran parámetros de plantilla en contextos no deducidos? Un ejemplo común destd::void_t lo usa para definir un rasgo que ...

1 la respuesta

¿Por qué no se elige la especialización de plantilla?

Escribí el siguiente código: #include <iostream> #include <string> #include <type_traits> template<typename, typename = void> struct is_incrementable : std::false_type {}; template<typename T> struct is_incrementable<T, decltype( ...

1 la respuesta

C ++ detecta la existencia de funciones libres con parámetros explícitos

Estoy escribiendo algunos rasgos de tipo para ver si existe una función libre con un conjunto específico de parámetros. Las funciones tienen una firma que se parece a esto: template <class T> void func( SomeClass &, SomeType const & );Sé de ...

1 la respuesta

comprobar si una clase hereda de cualquier plantilla de instanciación de una plantilla

He escrito una pequeña utilidad para probar si un tipo ha heredado o no alguna instancia de plantilla de una clase de plantilla específica, ya sea directamente o por medio de heredar una clase que hereda la plantilla. Esto se logra con ...

2 la respuesta

¿Cómo verificar con SFINAE si existe un miembro, sin saber el tipo de miembro?

En el código anterior a C ++ 11, si estoy buscando una variable miembro cuyo tipo no conozco, ¿cómo puedo usar SFINAE para verificar si el miembro existe?

3 la respuesta

Compruebe si la clase tiene función con firma

Hay otras respuestas en este sitio que usan SFINAE pero con código que no es C ++ 11, y hay otras que usan código C ++ 11 como decltypes para facilitar este proceso. Sin embargo, no estoy seguro de cómo verificar si una clase tiene una función ...

3 la respuesta

Método de plantilla para seleccionar entre funciones en función de la accesibilidad del constructor

Estoy escribiendo una claseptr_scope_manager gestionar la creación y destrucción de punteros en un ámbito determinado. He estudiado las respuestas de esta pregunta: El constructor privado inhibe el uso de emplace [_back] () para evitar ...

2 la respuesta

SFINAE: detecta si la clase tiene función libre

¿Hay alguna manera, usando SFINAE, de detectar si una función libre está sobrecargada para una clase determinada? Básicamente, tengo la siguiente solución: struct has_no_f { }; struct has_f { }; void f(has_f const& x) { } template <typename T> ...

4 la respuesta

SFINAE verifica operador + =

Estoy tratando de eliminar una sobrecarga de un conjunto de sobrecarga sioperator+= Está perdido. Se como comprobar siT+T es legal : template<typename T, typename CheckTplusT = decltype(std::declval<T>() + std::declval<T>())> void foo(T a, T b, ...