Pode inicialização lista em construtores ser usado em classes de modelo?
-
04-07-2019 - |
Pergunta
Eu acho que a maioria dos livros sobre modelos C ++ não diz nada sobre se é possível ou não a lista o uso de inicialização no construtor de uma classe de modelo.
Por exemplo, eu tenho um 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];
}
Posso substituir o construtor com
Stack(): count(0), capacity(INIT), data(new T [INIT])
Solução
Sim. Será que o compilador dizer o contrário?
Outras dicas
Eu apenas tentei e VS2008 diz que é OK, mas parece um pouco estranho, porque alguns grandes autores não fazem isso (Eckel, por exemplo, em seu "Pensando em C ++").
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow