Можно ли использовать список инициализации в конструкторах в классах шаблонов?
-
04-07-2019 - |
Вопрос
Я обнаружил, что в большинстве книг, посвященных шаблонам C++, ничего не говорится о том, можно или нельзя использовать список инициализации в конструкторе класса шаблона.
Например, у меня есть такой код:
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];
}
Могу ли я заменить конструктор на
Stack(): count(0), capacity(INIT), data(new T [INIT])
Решение
Да.Компилятор сказал вам обратное?
Другие советы
Я только что попробовал, и VS2008 говорит, что все в порядке, но это кажется немного странным, потому что некоторые великие авторы этого не делают (например, Экель в своей статье «Мышление на С ++»). р>
Не связан с StackOverflow