¿Se puede usar la lista de inicialización en constructores en las clases de plantilla?
-
04-07-2019 - |
Pregunta
Creo que la mayoría de los libros sobre plantillas de C ++ no dicen nada acerca de si es posible o no usar la lista de inicialización en el constructor de una clase de plantilla.
Por ejemplo, tengo un código como este:
template <class T>
class Stack {
T* data;
std::size_t count;
std::size_t capacity;
enum {INIT = 5};
public:
Stack() {
count = 0;
capacity = INIT;
data = new T [INIT];
}
¿Puedo reemplazar el constructor con
Stack(): count(0), capacity(INIT), data(new T [INIT])
Solución
Sí ¿El compilador te dijo lo contrario?
Otros consejos
Acabo de probar y VS2008 dice que está bien, pero parece un poco extraño porque algunos grandes autores no lo hacen (Eckel, por ejemplo, en su "Pensamiento en C ++").
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow