2011-12-20 11 views
5

¿Cómo se especifica un tipo con una cadena? quiero decir:Especifique el tipo de vector con una cadena

string s = "int"; 
Vector<s> vec; 

Y quiero ser vec vector<int>. ¿Esto es posible?

Quiero hacer una clase donde el usuario pueda escribir una cadena y se creará un vector con ese tipo.

+0

Necesita algún tipo de tipo de datos de variante. –

Respuesta

5

No es posible en C++, al menos no de la forma que desee.

plantillas son un tiempo concepto de compilación, mientras que la entrada del usuario es un conceptotiempo de ejecución. Completamente diferente, no mezclable.

Para que funcione, necesita un lenguaje de tipado dinámico, que C++ no lo es. Está estáticamente estátipo.

+0

Bien, pero quiero hacer esto porque quiero implementar un vector multidimensional, http://stackoverflow.com/questions/8579207/hypercube-c-multidimensional-vectros. ¿Algun consejo? – shizzle

3

¿Esto es posible?

Esto no es posible en C++. Si usar boost es una opción, considere crear un vector de objetos boost::variant en su lugar: de esta manera, su vector estáticamente tipeado estaría preparado para aceptar elementos de diferentes tipos.

Cuestiones relacionadas