Ver Mensaje Individual
  #6 (permalink)  
Antiguo 01/12/2014, 08:08
Pantaláimon
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Respuesta: Crear plantilla dynamic. Lo que viene a ser tuple para struct, hacerlo par

Vaya, pero yo no quería rendirme tan fácilmente. No sé que me pasa que siempre que cuando trato de hacer cosas un poco más complejas con plantillas siempre encuentro problemas que hacen siempre retirarme.

Ahora por ejemplo, olvidando por un momento el tema de tupla-unión. Me encuentro con esta problemática:

Código C++:
Ver original
  1. #include <type_traits>
  2.  
  3. class A {
  4.     public:
  5.         // un constructor con cualquier parámetro
  6.         template<typename U>
  7.         void foo(const U& u) {};
  8.        
  9.         // testeando que std::enable_if funcione bien
  10.         void bar(const std::enable_if<true, int>::type& u) {};
  11.  
  12.         // probando ahora std::enable_if con una template... error
  13.         template<typename U>
  14.         void foobar(const typename std::enable_if<true, U>::type&) {};
  15. };
  16.  
  17. int main() {
  18.     A x;
  19.     x.foo(3); // OK
  20.     x.bar(6); // OK
  21.     x.foobar(9); // error
  22.     return 0;
  23. }

No entiendo por qué el error, echo en falta que C++ responda de manera más intuitiva.

Un saludo!
__________________
github.com/xgbuils | npm/xgbuils