@Trauma A mi también, pero lo que no me gusta es que ocultan los constructos reales que hay detrás ¿Por qué inventarse una sintaxis nueva con incluso palabras clave y colarlas detrás de "magia del compilador" pudiendo publicar una cabecera con funciones que hacen lo mismo?
@Trauma Opino que estoy más perdido que el melocotón del interferómetro.
A ver, me cuesta entender el código, pero en el error se queja de que falta un operador paréntesis: error: no match for call to '(tu tipo de datos) ()'
Si lo añades el error cambia, pero ahora tengo que mirar otra cosa del curro :(
El enable_if es un mecanismo para explotar la característica de SFINAE (substitution failure is not an error), falla la substitución de parámetros en la primera versión entonces toda esa función deja de existir en esa instancia, así que lo único que puede tragar un parámetro de tipo HANDLER es la función rvr.
He quitado la negación del enable_if en la versión rvr
De esa manera ambas versiones de la función se instancian cuando is_same se cumple pero se escoge la primera porque cr se ajusta al parámetro recibido mejor que rvr.
A ver, todas las versiones (de un sólo parámetro) de connect reciben un HANDLER, el cuál quieres que sea (is_same) un class Signal<…>. ¿Cuántos punteros a función pueden ser un class Signal<…>?
@Trauma Tanto la primera como la segunda versión reciben un HANDLER que por tu propia especificación tiene que ser (is_same) un Signal<…> y por lo tanto nunca será un puntero a función.
@Trauma A ver, un no-Signal puede ser (literalmente) cualquier cosa. Si quieres que siendo un Signal entre por un sitio y que si es un fptr entre por otro, no tienes que usar SFINAE si no sobrecarga de funciones, haz una sobrecarga que reciba fptr.
@Benito-B sigues sin aprender ... si una pregunta es off-topic la comunidad puede darce el lujo de permitirla ... la ultima palabra la tiene la comunidad ... independientementre que sea una mala pregunta o este fuera de sitio... puede resultar interesantes para quienes no les interese el contexto del sitio ...
De hecho, esa es justamente la actitud que se está cargando la comunidad xD Yo no quiero entrar aquí a ver preguntas de edición de imagen, de higiene personal o de conducción en condiciones de baja visibilidad. Quiero entrar aquí a aprender cosas de programación
Y lo único que hay últimamente son preguntas de Trauma que no entiendo, gente llorando que le hagan los deberes urgentemente y preguntas off topic
(Exagero, alguna pregunta decente aún se ve... pero ya son pocas)
@Trauma Pero son necesarias, imaginate que luego quieres decir Adiós en vez de Hola... Puedes simplemente crear un SalutationFactory donde inyectes los diferentes servicios y simplemente cambiar al que necesites en función del tipo de mensaje