Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/03/2010, 06:15
Avatar de Fernand0
Fernand0
 
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 19 años, 1 mes
Puntos: 19
Templates con Lista de argumentos(...)

Buenas, ando con un problema entre el listado de argumentos y los templates..

main.cpp
Código C++:
Ver original
  1. Vector<int> vec(1, 2, 3, 4);

Vector.h
Código C++:
Ver original
  1. #ifndef VECTOR
  2. #define VECTOR
  3.  
  4. #include <stdarg.h>
  5.  
  6.  
  7. template <typename t>
  8. class Vector
  9. {
  10.     private:
  11.         t* num;
  12.    
  13.     public:
  14.         Vector(t nums, ...); // problema!
  15.         ~Vector();
  16. };
  17.  
  18. #endif

Vector.cpp
Código C++:
Ver original
  1. #include "Vector.h"
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. template <typename t>
  6. Vector<t>::Vector(t nums, ...) // problema!
  7. {
  8.     t temp;
  9.     va_list ap;
  10.    
  11.     va_start(ap, nums);
  12.    
  13.     for(int i=0; i<nums; ++i)
  14.     {
  15.         cout << va_arg(ap, t) << endl;
  16.     }
  17. }
  18.  
  19. template <typename t>
  20. Vector<t>::~Vector()
  21. {
  22.     delete num;
  23. }


Error:
Código devCpp:
Ver original
  1. C:\Doc...\main.o(.text+0xa1) In function `main':
  2.   [Linker error] undefined reference to `Vector<int>::Vector(int, ...)'
  3.   [Linker error] undefined reference to `Vector<int>::~Vector()'
  4.   [Linker error] undefined reference to `Vector<int>::~Vector()'
  5.   C:\Doc...\main.o(.text+0xa1) ld returned 1 exit status
  6.  C:\Doc...\Makefile.win [Build Error]  [Limit.exe] Error 1

El codigo anda bien sin stdarg o sin los templates... por X motivo no puedo usarlos al mismo tiempo...
Busque y encontre poco, existe la posibilidad de hacer esto? como seria?

saludos