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

3 la respuesta

SFINAE para hacer que la plantilla base siempre resulte en un error

Entonces estoy diseñando una especie demy_numeric_cast función para limitar los tipos de conversiones disponibles al usar un marco que estoy escribiendo. Fue bastante sencillo hacer algo como template<typename To, typename From> constexpr To ...

4 la respuesta

Cómo resolver la ambigüedad en funciones sobrecargadas usando SFINAE

Tengo una biblioteca increíblemente emocionante que puede traducir puntos: debería funcionar con cualquier tipo de punto template<class T> auto translate_point(T &p, int x, int y) -> decltype(p.x, p.y, void()) { p.x += x; p.y += y; } ...

2 la respuesta

C ++ 98/03 std :: implementación is_constructible

Los componentes básicos de mi biblioteca de pasatiempos tienen que funcionar con los compiladores de C ++ 98 y C ++ 11. Para aprender y divertirme, creé las implementaciones de C ++ 98 de varias funcionalidades de soporte ...

4 la respuesta

Usando std :: enable_if con parámetros de tipo anónimo

Trato de usarstd::enable_if con un parámetro de tipo no utilizado y sin nombre, para no distorsionar elreturn tipo. Sin embargo, el siguiente código no se compila. #include <iostream> template <typename T, typename ...

4 la respuesta

Cómo usar enable_if para habilitar funciones miembro basadas en el parámetro de plantilla de la clase

En codigo: template<class T> struct is_builtin { enum {value = 0}; }; template<> struct is_builtin<char> { enum {value = 1}; }; template<> struct is_builtin<int> { enum {value = 1}; }; template<> struct is_builtin<double> { enum {value = 1}; ...

30 la respuesta

¿Cómo puedo agregar reflejo a una aplicación C ++?

Me gustaría poder introspectar una clase de C ++ para su nombre, contenido (es decir, miembros y sus tipos), etc. Aquí estoy hablando de C ++ nativo, no C ++ administrado, que tiene reflejo. Me doy cuenta de que C ++ proporciona información ...

6 la respuesta

SFINAE y detectar si un objeto de función C ++ devuelve vacío

He leído las diversas autoridades sobre esto, incluyenDesvanecimiento [http://www.semantics.org/once_weakly/w02_SFINAE.pdf]y, sin embargo, no he logrado llegar a ninguna parte con esta pregunta aparentemente simple. Lo que quiero hacer esllamada ...

2 la respuesta

¿Es posible una sfinae fuera de línea en las funciones de miembro de plantilla?

Manifestación [https://wandbox.org/permlink/ie6Naxo7GDzKOx89] Una declaración en clase de A :: foo. struct A { template <typename T> void foo(T a); };A :: foo ahora está dividido por sfinae. template <typename T> typename ...

1 la respuesta

Resolución de sobrecarga entre miembros de plantilla en clases base y derivadas

El compilador de Microsoft (Visual Studio 2017 15.2) rechaza el siguiente código: #include <type_traits> struct B { template<int n, std::enable_if_t<n == 0, int> = 0> void f() { } }; struct D : B { using B::f; template<int n, std::enable_if_t<n ...

5 la respuesta

Problemas del compilador SFINAE

El siguiente código mío debería detectar siT tienebegin yend métodos: template <typename T> struct is_container { template <typename U, typename U::const_iterator (U::*)() const, typename U::const_iterator (U::*)() const> struct sfinae {}; ...